How do I set ItemTemplate dynamically in WPF?
-
09-06-2019 - |
Question
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 = ??
Solution
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.
OTHER TIPS
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.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow