9

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 =   ??
Dave Clemmer
  • 3,741
  • 12
  • 49
  • 72
ScottG
  • 10,711
  • 25
  • 82
  • 111

2 Answers2

12

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.

Matt Hamilton
  • 200,371
  • 61
  • 386
  • 320
2

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.

Greg
  • 565
  • 1
  • 5
  • 13