C# ContentControl的触发内容

C# ContentControl的触发内容,c#,wpf,C#,Wpf,我有一个数据模板,看起来像这样 如果相应viewmodel的IsEditing标志设置为true,我想用文本框替换LeaftTextBlockKey手势。我的想法是在DataTemplate中使用ContentControl,并根据IsEditing标志更改其内容。我尝试了几种解决方案,但都找不到有效的 有人知道怎么做吗?根据答案,你需要这样的东西: <StackPanel> <StackPanel.Resources> <DataTem

我有一个
数据模板
,看起来像这样


如果相应viewmodel的
IsEditing
标志设置为true,我想用
文本框
替换
LeaftTextBlockKey手势
。我的想法是在
DataTemplate
中使用
ContentControl
,并根据
IsEditing
标志更改其
内容。我尝试了几种解决方案,但都找不到有效的

有人知道怎么做吗?

根据答案,你需要这样的东西:

<StackPanel>
    <StackPanel.Resources>
        <DataTemplate x:Key="textbox">
            <TextBox Text="edit me"/>
        </DataTemplate>
        <DataTemplate x:Key="textblock">
            <TextBlock Text="can't edit"/>
        </DataTemplate>
    </StackPanel.Resources>
    <CheckBox IsChecked="{Binding IsEditable}" Content="Editable"/>
    <ContentControl Content="{Binding}">
        <ContentControl.Style>
            <Style TargetType="{x:Type ContentControl}">
                <Setter Property="ContentTemplate" Value="{StaticResource textblock}" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsEditable}" Value="true">
                        <Setter Property="ContentTemplate" Value="{StaticResource textbox}" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ContentControl.Style>
    </ContentControl>
</StackPanel>