WPF TreeView ItemTemplate не обратился к TreeViewItem

Я имею TreeView и вручную добавляю два пункта ( TreeViewItem ) к нему. И я хочу обратиться ItemTemplate к тем двум пунктам, но это походит , ItemTemplate не применяется к ним. На самом деле у меня есть более глубокие уровни в дереве (так item1 и item2, у каждого есть коллекция как ItemsSource , и есть больше HierarchicalDataTemplates для них). Но продемонстрировать первый Шаблон, НЕ применяемый к пунктам первого уровня, я упростил пример. Ниже позади кодов.

        TreeViewItem item1 = new TreeViewItem();
        TreeViewItem item2 = new TreeViewItem();
        trvRecordList.Items.Add(item1);
        trvRecordList.Items.Add(item2);

И вот мои коды xaml. HierarchicalDataTemplate написан в правильном месте.

                                                                            
                            
                                
                                
                            
                        


                      <treeView Name="trvRecordList" Margin="2"
                              ItemTemplate="{StaticResource My_Template}">                           
                     
0
nl ja de
HierarchicalDataTemplate нужен Treeview' s заполненная собственность ItemsSource.
добавлено автор HichemSeeSharp, источник

2 ответы

Так как вы добавляете список , TreeViewItem возражает против вашего TreeView , My_Template не будет применен к нему. Если бы вы проверяете свое окно вывода, вы получили бы ошибку как показано ниже

System.Windows.Data Error: 26 : ItemTemplate and ItemTemplateSelector are ignored for items already of the ItemsControl's container type; Type='TreeViewItem'

Решение состоит в том, чтобы применить My_Template к ItemTemplate собственность TreeViewItem сам. Ниже модификации, которые я сделал к вашему коду

        TreeViewItem item1 = new TreeViewItem();
        TreeViewItem item2 = new TreeViewItem();
        item1.Items.Add("");
        item1.Items.Add("");
        item1.ItemTemplate = FindResource("My_Template") as HierarchicalDataTemplate;

        item2.Items.Add("");
        item2.Items.Add("");
        item2.ItemTemplate = FindResource("My_Template") as HierarchicalDataTemplate;

        trvRecordList.Items.Add(item1);
        trvRecordList.Items.Add(item2);

Пройдите ссылку ниже, чтобы узнать больше о HierarchicalDataTemplate

http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

Править:

Если вы хотите применить My_Template к , TreeView тогда пробуют этот код.

        trvRecordList.Items.Add("");
        trvRecordList.Items.Add("");
1
добавлено
В этом случае вы shouldn' t используют TreeViewItem, я отредактировал ответом.
добавлено автор Anand Murali, источник
Но, я хочу применить My_Template к самому item1! не детям item1.
добавлено автор Dan PyongAn Byon, источник

ItemTemplate для объектов данных. Проверьте замечания на ItemTemplate на MSDN.

TreeViewItem is container generated for each data item and is styled thru ItemContainerTemplate. ItemContainerTemplate on MSDN

0
добавлено
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing