使用MVVM在View中更改ContentControl的ControlTemplate

时间:2010-07-21 06:10:55

标签: wpf mvvm controltemplate

我的View中有两个资源Dock和Undock,这是一个UserControl(Dock.xaml),以下是xaml代码

<Grid>
    <ContentControl Template="{StaticResource Dock}"/>   
</Grid>

在DockViewModel中有一个名为IsDocked的属性,如果它是真的我需要应用Dock否则Undock模板

如何使用ViewModel在视图中更改模板。

1 个答案:

答案 0 :(得分:3)

<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>