通过触发器动态更改ContentControl的内容

时间:2014-02-21 15:43:52

标签: c# wpf contentcontrol

我需要根据ViewModel中的布尔标志动态地在两个视图之间切换。

我认为这很简单:

<ContentControl>
    <ContentControl.Style>
        <Style TargetType="ContentControl">

            <Setter Property="Content" Value="{StaticResource View1}" />

            <Style.Triggers>
                <DataTrigger Binding="{Binding IsShowingView2}">                                     
                    <Setter Property="Content" Value="{StaticResource View2}" />                                   
                </DataTrigger>
             </Style.Triggers>

         </Style>
     </ContentControl.Style>
 </ContentControl>

但是,View2永远不会显示,即使IsShowingView2始终为真。

任何想法?我能找到的所有例子似乎都在改变ContentTemplate,但我没有必要这样做。我只想要不同的内容。

1 个答案:

答案 0 :(得分:1)

您实际上并未为DataTrigger

设置值
<DataTrigger Binding="{Binding IsShowingView2}" Value="True">                                     
    <Setter Property="Content" Value="{StaticResource View2}" />                                   
</DataTrigger>

同时检查输出窗口中的绑定错误。