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>