在标签上设置触发器的XAML语法是什么?

在标签上设置触发器的XAML语法是什么?,xaml,triggers,Xaml,Triggers,我有一个DataTemplate,它显示具有三个字段的对象,例如: Name = "Font Color" Value = "Orange" Editable = "True" 但我想将它们显示为,例如: 字体颜色:橙色可编辑 但是我在这里很难找到使用触发器的语法,例如当字段Editable=“True”时显示“Editable” 有人知道这样做的语法吗 以下代码导致“属性中不能使用绑定”: 使用文本块而不是标签是否有效TextBlock确实有一个Text属性,在这种情况下,您应该能够绑定到该

我有一个DataTemplate,它显示具有三个字段的对象,例如:

Name = "Font Color"
Value = "Orange"
Editable = "True"
但我想将它们显示为,例如:

字体颜色:橙色可编辑

但是我在这里很难找到使用触发器的语法,例如当字段Editable=“True”时显示“Editable”

有人知道这样做的语法吗

以下代码导致“属性中不能使用绑定”:


使用
文本块而不是
标签是否有效
TextBlock
确实有一个
Text
属性,在这种情况下,您应该能够绑定到该属性

如果您确实想使用
标签
,另一种方法是创建两个
数据模板
——一个用于可编辑的案例,另一个用于不可编辑的案例。然后可以将
ContentTemplate
属性绑定到适当的模板

更新:进一步研究后,看起来
触发器
不支持其
属性
的绑定。但是,
DataTrigger
确实支持这一点:

<StackPanel>
    <CheckBox Name="EditableCheckBox">Is Editable</CheckBox>
    <Label>
        <Label.Resources>
            <Style TargetType="{x:Type Label}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=EditableCheckBox, Path=IsChecked}" Value="True">
                        <Setter Property="Content" Value="Editable" />
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ElementName=EditableCheckBox, Path=IsChecked}" Value="False">
                        <Setter Property="Content" Value="NOT Editable" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Label.Resources>
    </Label>
</StackPanel>

是可编辑的

您应该能够修改
绑定
属性以绑定到您的XML数据源,而不是执行另一个控件的值。

我尝试过,但仍然得到一个错误,即无法在属性中进行绑定。我不知道如何在我的触发器中告诉它:查看当前对象中“可编辑”属性的值,看看它是否为“真”,迷失在这里的语法丛林中。我用另一个解决方案更新了我的答案-这对你有用吗?
<StackPanel>
    <CheckBox Name="EditableCheckBox">Is Editable</CheckBox>
    <Label>
        <Label.Resources>
            <Style TargetType="{x:Type Label}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=EditableCheckBox, Path=IsChecked}" Value="True">
                        <Setter Property="Content" Value="Editable" />
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ElementName=EditableCheckBox, Path=IsChecked}" Value="False">
                        <Setter Property="Content" Value="NOT Editable" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Label.Resources>
    </Label>
</StackPanel>