我有ContentControl
我需要动态设置它ContentTemplate
。
因此我决定编写2 DataTemplates
,然后设置我的ContentControl
样式,以便当我的视图模型中的布尔依赖项属性发生更改时触发器触发并设置正确的模板(dt1 / dt2) (真假)。
但问题是如果布尔属性主要设置为true
,则数据模板将始终为dt1
并将属性更改为false
,不会将模板更改为{{1} }}
由于数据触发器绑定到布尔依赖属性,不应该在触发触发器时更改属性结果吗?
注释:
dt2
中有一个按钮可以更改MyView
点击活动。BooleanDependencyProp
继承自该接口
实现MyViewModel
。的Xaml:
INotifyPropertyChanged
答案 0 :(得分:1)
这是WPF框架的一个众所周知的缺点,如果要应用不同的数据模板,可以考虑使用可视状态管理器来更改表示,或者将内容数据模板替换为基于相反,你会获得更多里程。
我可以说更多,但它会涉及了解您的场景以及这些DataTemplates的差异,为什么要消除歧义等等。另外,MVVM到处都是?或者直接使用一些视图模型的Code + Markup风格?