如何在WPF中动态设置ItemTemplate?

时间:2020-03-05 18:44:07  来源:igfitidea点击:

使用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")将可以正常工作。

回答

如果树视图控件的项目需要不同的模板,则应实现DataTemplateSelector类并将其实例设置为树视图。据我记得有一个DataTemplateSelector的属性。