我可以根据某些标准对同一数据类型使用不同的datatemplate吗?

时间:2011-02-12 18:52:10

标签: wpf data-binding datatemplate

我是wpf的新手,现在我遇到了问题。我有一个模型类说Customer,我创建了一个Data TargetType属性设置为Customer的DataTemplate。它运作良好。但实际上我想要两个不同的模板,例如一个用于显示记录而另一个用于就地编辑。是否可以根据某些creteria为相同的数据类型指定两个不同的模板? 我想基于ViewModel上的某些属性切换此模板,例如IsEditmodeTrue时。

或者我做错了吗?我应该使用样式吗?

2 个答案:

答案 0 :(得分:3)

你的方法似乎非常好。

您可以创建DataTemplateSelector,以便根据代码背后的任意条件选择数据模板。

我经常使用这些来根据枚举类型属性来决定使用哪个模板。

答案 1 :(得分:2)

我可以通过两种简单的方式来考虑,当然还有其他方法可以基于您想要遵循的复杂性和架构。

  1. 使用'Key'定义DataTemplate,并使用StaticResource / DynamicResource Binding特别调用它。
  2. 您可以在datatemplate中使用DataTrigger,根据您的“EditMode”属性显示模板的某些部分