2011-02-12 61 views
3

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

还是我做错了?我应该使用样式吗?

回答

3

你的方法似乎是完美的罚款。

您可以创建一个DataTemplateSelector,这将允许您从后面的代码中根据任意条件选择数据模板。

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

2

我可以想到两种简单的方法,当然还有其他基于您想要遵循的复杂性和体系结构的方法。

  1. 用'Key'定义DataTemplate,并专门使用StaticResource/DynamicResource Binding调用。
  2. 你可以拥有这使得模板的某些部分可见的DataTemplate内DataTrigger /折叠根据您的“编辑模式”属性
相关问题