gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:41:06 26 4
gpt4 key购买 nike

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

Name = "Font Color"
Value = "Orange"
Editable = "True"

但我想将它们显示为例如:

字体颜色:橙色 可编辑

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

有谁知道这样做的语法?

以下代码导致“无法在属性中使用绑定(bind)”:
<DataTemplate x:Key="settingsItemTemplate">
<StackPanel Orientation="Horizontal">
<Label Content="{Binding XPath=Name}" ContentStringFormat=" {0}:"/>
<Label Content="{Binding XPath=Value}"/>
<Label>
<Label.Triggers>
<Trigger Property="{Binding XPath=Editable}" Value="True">
<Setter Property="Content" Value="Editable"/>
</Trigger>
<Trigger Property="{Binding XPath=Editable}" Value="False">
<Setter Property="Content" Value="NOT Editable"/>
</Trigger>
</Label.Triggers>
</Label>
</StackPanel>
</DataTemplate>

最佳答案

使用 TextBlock 是否有效?而不是 Label ? TextBlock确实有 Text在这种情况下,您应该能够绑定(bind)到的属性。

如果你真的想使用 Label ,另一种方法是创建两个 DataTemplate 's - 一个用于可编辑的情况,另一个用于不可编辑的情况。然后您可以绑定(bind) ContentTemplate属性到适当的模板。

更新 : 再看了一下,好像是Trigger不支持对其Property 的绑定(bind)属性。但是,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>

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

关于xaml - 在标签上设置触发器的 XAML 语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/536510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com