我能为同一数据类型基于某些条件使用不同的数据模板吗?

3
我对wpf不熟悉,现在我遇到了一个问题。我有一个模型类,称为“Customer”,并创建了一个DataTemplate,将TargetType属性设置为“Customer”。它的效果很好。但实际上,我想要两个不同的模板,一个用于仅显示记录,另一个用于原地编辑。是否可以基于某些条件为相同的数据类型指定两个不同的模板?我希望根据ViewModel上的某个属性(例如当IsEditMode为True时)切换此模板。
或者,我做错了吗?我应该使用样式吗?
2个回答

3

您的方法看起来非常好。

您可以创建一个DataTemplateSelector,它将允许您根据代码中的任意标准选择数据模板。

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


2

我能想到两种简单的方法,当然根据您想要遵循的复杂程度和架构还有其他方法。

  1. 使用“Key”定义DataTemplate,并使用StaticResource / DynamicResource绑定来特别调用它。
  2. 您可以在datatemplate中有一个DataTrigger,根据您的“EditMode”属性使模板的某些部分可见/折叠。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接