我有一个要求,其中用户可以切换以树或数据网格中的文本或流程图的形式查看分层数据。
用户可以通过单击切换按钮来完成此操作,该按钮显示:切换模式。我希望以这样一种方式来完成这一切,即它只能在视图中处理,因为所有三种情况下的 ViewModel 都是相同的。
如何基于触发器将视图应用到我的视图模型。
如果要显示的视图的状态保存在某个枚举属性中,您可以使用ContentControl and DataTriggers例如:
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding ViewMode}" Value="TreeMode">
<Setter Property="Content">
<Setter.Value>
<uc:TreeModeView />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ViewMode}" Value="GridMode">
<Setter Property="Content">
<Setter.Value>
<uc:GridModeView />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
(由于样式只用在一处,所以直接设置为ContentControl.Style
这会起作用,如果你想在多个地方使用它,你应该设置ContentTemplate
相反,因为否则只有一个视图实例被所有控件共享,其样式是 WPF 不允许的(当然Content
需要设置为某物用于要应用的模板))
您也可以直接绑定IsChecked
of the ToggleButton
using ElementName当然。相关值将是True
, False
and {x:Null}
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)