Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set ItemTemplate dynamically in WPF?

Using WPF, I have a TreeView control that I want to set its ItemTemplate dynamically through procedural code. How do I do this? I assume I need to find the resource somewhere.

myTreeViewControl.ItemTemplate =   ??
like image 496
ScottG Avatar asked Aug 27 '08 20:08

ScottG


2 Answers

If the template is defined in your <Window.Resources> section directly:

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

If it's somewhere deep within your window, like in a <Grid.Resources> section or something, I think this'll work:

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

And if it's elsewhere in your application, I think App.FindResource("SomeTemplate") will work.

like image 109
Matt Hamilton Avatar answered Nov 12 '22 02:11

Matt Hamilton


if your treeview control requires different templates for your items, you should implement DataTemplateSelector class and set it's instance to your tree view. as far as i remember there is a property of DataTemplateSelector.

like image 28
Greg Avatar answered Nov 12 '22 01:11

Greg