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 次 |
| 最近记录: |