Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Stan11
2 / 1 / 2
Регистрация: 29.09.2016
Сообщений: 51
1

Дерево TreeView

26.03.2018, 20:16. Просмотров 1042. Ответов 2
Метки нет (Все метки)

Мне необходимо, что бы в дереве был определённая иконка и я реализовал это не самым лучшим способом.
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 void FillTreeViewItem()
        {
            for (int i = 0; i < PatientList.Count; i++)
            {
                treeViewItem[i] = new TreeViewItem();
                SimpleFolder[i] = new Image();
                textBlock[i] = new TextBlock();
                stackPanel[i] = new StackPanel();
 
                
                stackPanel[i].Orientation = Orientation.Horizontal;
 
                textBlock[i].Text = PatientList[i].FullName.TrimEnd();
 
                SimpleFolder[i].Source = new BitmapImage(new Uri("Resources/folder.png", UriKind.Relative));
                SimpleFolder[i].Height = 20;
                SimpleFolder[i].Width = 20;
                
                stackPanel[i].Children.Add(SimpleFolder[i]);
                stackPanel[i].Children.Add(textBlock[i]);
 
                treeViewItem[i].Header = stackPanel[i];
                for (int j = 0; j < RecordList.Count; j++)
                {
                    if (PatientList[i].idPatient == RecordList[j].idPatient)
                    {
                        treeViewItem[i].Items.Add(RecordList[j].Date.ToString());
                    }
                }
 
                tviHolter.Items.Add(treeViewItem[i]);
                treeViewItem[i].Margin = MarginItem;
            }
        }
Считаю этот способ топорным и знаю про существование стилей, но не знаю как запихнуть в него иконку.
Может кто посоветовать как это сделать?
И есть ли способ, так же присвоить стиль вложенным элементам дерева созданными в процессе работы?
Как всегда извините за тупые вопросы
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2018, 20:16
Ответы с готовыми решениями:

TreeView - дерево с разными типами
Привет форумчане! Прошу помощи в работе с компонентом TreeView в WPF. Задача такая: Есть 3 типа:...

Сформировать дерево TreeView по данным из БД
Привет ребята! Вот смотрите, есть стандартная таблица дерева) TreeID, LevelID, ParentID, Name...

Дерево treeview, запутался окончательно...
1. Ну так вот мне нужно что бы при нажатии правой клавишей по Nodes выводилась информация, которую...

Заполнить из базы данных дерево значений (TreeView)
Доброго дня, хочу заполнить из базы данных дерево значений (структура дерева заранее известна),...

TreeView дерево
Привет. Парни есть таблица на MSSQL содержит вот такие значения: ID LEVEL NAME ...

2
ShadowOuroboros
2 / 2 / 1
Регистрация: 03.01.2018
Сообщений: 25
26.03.2018, 20:48 2
Лучше почитай книги или на худой конец гайды и сделай нормально, с шаблонами и MVVM
0
hamin
676 / 451 / 258
Регистрация: 21.11.2012
Сообщений: 1,307
27.03.2018, 10:29 3
Лучший ответ Сообщение было отмечено Stan11 как решение

Решение

XML
1
2
3
4
5
6
<DataTemplate x:Key="MyTemplate">
    <StackPanel Orientation="Horizontal">
       <Image Source="{StaticResource MyFolder}" Height="20" Width="20"/>
       <TextBlock Text="{Binding FullName}"/>
    </StackPanel>
</DataTemplate>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void FillTreeViewItem()
{
      for (int i = 0; i < PatientList.Count; i++)
      {
            var tv = new TreeViewItem() { HeaderTemplate = (DataTemplate) Application.Current.FindResource("MyTemplate") };
            treeViewItem[i] = tv;
           
            tv.Header = PatientList[i];
            
            for (int j = 0; j < RecordList.Count; j++)
            {
                  if (PatientList[i].idPatient == RecordList[j].idPatient)
                  {
                      tv.Items.Add(RecordList[j].Date.ToString());
                  }
            }
 
            tviHolter.Items.Add(treeViewItem[i]);
            tv.Margin = MarginItem;
      }          
}
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2018, 10:29

Дерево treeView из datetime
Здравствуйте люди, подскажите пожалуйста, как мне заполнить treeView датами??? т.е корень-год,...

Перевернуть дерево (TreeView)
Здравствуйте! Стоит задача - построение бинарного дерева и его графическое представление....

TreeView отображающий дерево папок
Есть папка &quot;Nado&quot; - &quot;начальная&quot; (на скриншоте папка &quot;Nado&quot; отображена как &quot;1&quot;) Мне надо что бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.