【问题标题】:Change ControlTemplate of ContentControl in View using MVVM使用 MVVM 在视图中更改 ContentControl 的 ControlTemplate
【发布时间】:2010-07-21 06:10:54
【问题描述】:
我的视图中有两个资源 Dock 和 Undock,这是一个 UserControl(Dock.xaml),以下是 xaml 代码
<Grid>
<ContentControl Template="{StaticResource Dock}"/>
</Grid>
在 DockViewModel 中有一个名为 IsDocked 的属性,如果它是真的我需要应用 Dock 否则 Undock 模板
如何使用 ViewModel 更改视图中的模板。
【问题讨论】:
标签:
wpf
mvvm
controltemplate
【解决方案1】:
<ContentControl>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="ContentControl.Template" Value="{StaticResource Dock}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsDocked}" Value="False">
<Setter Property="ContentControl.Template" Value="{StaticResource UnDock}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>