powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeViewItem. ellipse fill binding
4 сообщений из 4, страница 1 из 1
TreeViewItem. ellipse fill binding
    #38726458
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день.

Собственно хочется, для элемента TreeViewItem добавить некоторую анимацию/индикацию процесса.
То есть некоторый графический элемент отображением которого можно будет управлять из модели (MVVM).

Задачу вполне могли бы решить фигуры WFP - Ellipse, Rectangle, Line...
При попытке это реализовать - данные не подтягиваются из модели

TreeView в ксампле
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        <TreeView ItemsSource="{Binding Items}">
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type local:MItem2}" ItemsSource="{Binding Items}">
                    <StackPanel Orientation="Horizontal">
                        <Ellipse Fill="ForestGreen" Width="10" Height="10" />
                        <Ellipse Fill="{Binding FillColor}" Width="10" Height="10"/>
                        <TextBlock Text="{Binding Text1}"></TextBlock>
                    </StackPanel>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>



код шарпа

элемент дерева TreeView и модель
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    public class Model2
    {
        public List<MItem2> Items { get; set; }
    }

    public class MItem2
    {
        public Color FillColor { get; set; }
        public string Text1 { get; set; }
        public List<MItem2> Items { get; set; }

        public MItem2(string text1, Color fillColor)
        {
            Text1 = text1;
            FillColor = fillColor;
        }
    }



главная форма
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
    public partial class MainWindow2 : Window
    {
        private Model2 model;
        public MainWindow2()
        {
            InitializeComponent();

            model = new Model2();
            model.Items = new List<MItem2>()
            {
                new MItem2("Item 1",Colors.Red)
                {
                    Items = new List<MItem2>()
                    {
                        new MItem2("Item 11",Colors.Red)
                        {
                            Items = new List<MItem2>()
                            {
                                new MItem2("Item 111",Colors.RoyalBlue)
                                ,
                                new MItem2("Item 112",Colors.DarkBlue)
                            }
                        }
                        ,
                        new MItem2("Item 12",Colors.SandyBrown)
                    }
                }
                ,
                new MItem2("Item 2",Colors.RosyBrown)

            };
            this.DataContext = model;
        }
    }




получается то что на картинке, перед текстом одно цветное пятно, а должно быть 2
не срабатывает
<Ellipse Fill="{Binding FillColor}"

что я делаю не так?
...
Рейтинг: 0 / 0
TreeViewItem. ellipse fill binding
    #38726754
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кифирчик,

Тип свойства неверный, нужно не Color , а SolidColorBrush , например. А вообще можно использовать любую кисть. Замени тип свойства и инить объекты так

Код: c#
1.
new MItem2("Item 2", new SolidColorBrush(Colors.RosyBrown))



будет работать, проверено.
...
Рейтинг: 0 / 0
TreeViewItem. ellipse fill binding
    #38726762
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кифирчик,

либо не меняй тип свойства, а юзай Converter в Binding -e, который будет делать из объектов типа Color объекты типа Brush .
...
Рейтинг: 0 / 0
TreeViewItem. ellipse fill binding
    #38726797
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrilla,
то что надо, спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeViewItem. ellipse fill binding
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]