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