Pra*_*eep 1 c# silverlight wpf datatemplate mvvm
我有一个要求,即用户可以切换到以树或数据网格或FlowChart中的文本的形式查看分层数据.
用户可以通过单击切换按钮来执行此操作,该按钮表示:切换模式.我希望以这样的方式完成所有这些操作,因为它只能在View中处理,因为在所有三种情况下ViewModel都是相同的.
如何根据Trigger将View应用于我的ViewModel.
H.B*_*.B. 13
如果要显示的视图的状态保存在某些枚举属性中,则可以使用a ContentControl
,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>
Run Code Online (Sandbox Code Playgroud)
(因为样式只在一个地方使用,通过直接设置它ContentControl.Style
可以工作,如果你想在多个地方使用它,你应该设置ContentTemplate
相反,因为否则只有一个视图实例由所有控件共享使用WPF不允许的样式(当然Content
需要设置为要应用的模板的东西))
你也可以直接绑定到IsChecked
了中ToggleButton
使用ElementName
的过程.那么相关的值将是True
,False
和{x:Null}
.
归档时间: |
|
查看次数: |
2886 次 |
最近记录: |