当对象类发生更改时,WPF c#动态切换Itemtemplate

时间:2010-10-22 07:56:13

标签: c# wpf datatemplate itemtemplate

我有以下情况: WPF Treeview显示自定义对象,每个对象都包含一个子列表。 所以问题是: 每个自定义对象由组合框控制,组合框可以将当前对象从A类更改为B / C / D类,反之亦然。类A-D都是超类的子类。 到现在为止还挺好。每个类都应该由WPF树视图中的特定Datatemplate表示,因此每次用户更改对象类(使用inline-combo)时,该项应该应用新模板。 到目前为止,我已经尝试过:

  1. DataTemplate Selector Class(仅在开始时应用)
  2. 在树视图中“归零”DatatemplateSelector并在对象更改后重新应用它(太慢)
  3. 按类分类(x:类型)(有效,但我需要每个对象有三个不同的模板,一个图形,一个最小,一个最大显示宽度和附加的TextBlocks)
  4. Datatrigger(我不知道如何将其数据绑定到更改的类)
  5. 可能是某种系统错误。非常感谢您的帮助

    迎接

    马库斯

1 个答案:

答案 0 :(得分:0)

最后一个解决方案是最好的方法(datatemplate on datatype),但是在datatemplate中,将内容设置为带有style属性上的datatrigger的contentcontrol。根据触发器前置条件覆盖控件模板。或者你可能想要考虑hierarchydatatemplate。