Как динамически установить ItemTemplate в WPF?

Используя WPF, у меня есть элемент управления TreeView, для которого я хочу динамически установить его ItemTemplate с помощью процедурного кода. Как мне это сделать? Я предполагаю, что мне нужно найти ресурс где-то.

myTreeViewControl.ItemTemplate =   ??

person ScottG    schedule 27.08.2008    source источник


Ответы (2)


Если шаблон определен в вашем разделе ‹Window.Resources› напрямую:

myTreeViewControl.ItemTemplate = this.Resources["SomeTemplate"] as DataTemplate;

Если это где-то глубоко в вашем окне, например, в разделе ‹Grid.Resources› или что-то в этом роде, я думаю, это сработает:

myTreeViewControl.ItemTemplate = this.FindResource("SomeTemplate") as DataTemplate;

И если он находится в другом месте вашего приложения, думаю App.FindResource("SomeTemplate") будет работать.

person Matt Hamilton    schedule 27.08.2008

если для вашего древовидного управления требуются разные шаблоны для ваших элементов, вы должны реализовать класс DataTemplateSelector и установить его экземпляр в свое древовидное представление. насколько я помню, есть свойство DataTemplateSelector.

person Greg    schedule 16.09.2008