Как мне динамически установить ItemTemplate в WPF?
-
09-06-2019 - |
Вопрос
Используя WPF, у меня есть элемент управления TreeView, который я хочу динамически устанавливать ItemTemplate с помощью процедурного кода.Как мне это сделать?Я предполагаю, что мне нужно где-то найти этот ресурс.
myTreeViewControl.ItemTemplate = ??
Решение
Если шаблон, определенных в <Window.Resources> раздел:
myTreeViewControl.ItemTemplate = this.Resources["SomeTemplate"] as DataTemplate;
Если это где-то глубоко в вашем окне, например, в разделе <Grid.Resources> или что-то в этом роде, я думаю, это сработает:
myTreeViewControl.ItemTemplate = this.FindResource("SomeTemplate") as DataTemplate;
И если это есть в другом месте вашего приложения, я подумай App.FindResource ("SomeTemplate") будет работать.
Другие советы
если вашему элементу управления treeview требуются разные шаблоны для ваших элементов, вам следует реализовать класс DataTemplateSelector и установить его экземпляр для вашего древовидного представления.насколько я помню, есть свойство DataTemplateSelector .