Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 我可以对基于某种规范的相同数据类型使用不同的数据模板吗?_Wpf_Data Binding_Datatemplate - Fatal编程技术网

Wpf 我可以对基于某种规范的相同数据类型使用不同的数据模板吗?

Wpf 我可以对基于某种规范的相同数据类型使用不同的数据模板吗?,wpf,data-binding,datatemplate,Wpf,Data Binding,Datatemplate,我是wpf的新手,现在我遇到了一个问题。我有一个模型类,比如说Customer,我创建了一个DataTemplate,其TargetType属性设置为Customer。它工作得很好。但我实际上需要两个不同的模板,一个用于显示记录,另一个用于就地编辑。是否可以基于某些信条为同一数据类型指定两个不同的模板? 我想根据ViewModel上的一些属性来切换这个模板,比如当IsEditmode为True时 还是我做错了?我应该改用样式吗?我可以想到两种简单的方法,当然,根据您想要遵循的复杂性和体系结构,还

我是wpf的新手,现在我遇到了一个问题。我有一个模型类,比如说
Customer
,我创建了一个DataTemplate,其
TargetType
属性设置为
Customer
。它工作得很好。但我实际上需要两个不同的模板,一个用于显示记录,另一个用于就地编辑。是否可以基于某些信条为同一数据类型指定两个不同的模板? 我想根据ViewModel上的一些属性来切换这个模板,比如当
IsEditmode
True


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

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

  • 使用“Key”定义DataTemplate,并使用StaticResource/DynamicSource绑定专门调用它
  • 在datatemplate中可以有一个DataTrigger,它根据“EditMode”属性使模板的某些部分可见/折叠

  • 你的方法似乎很好

    您可以创建一个数据库,它允许您根据代码隐藏中的任意条件选择数据模板

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