gpt4 book ai didi

wpf - WPF样式 setter 中的多个运行元素

转载 作者:行者123 更新时间:2023-12-04 14:43:58 24 4
gpt4 key购买 nike

XAML中是否可以在Run setter 中定义多个Style

以下内容定义了两个Run,但失败:

The property 'Value' is set more than once.


<TextBlock>
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text">
<Setter.Value>
<Run Text="{Binding SelectedItem.iso}"/>
<Run Text="{Binding SelectedItem.value}"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem.type}" Value={x:Null}">
<Setter Property="Text" Value="No value" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>

在保留多个 Run的用法的同时可以解决此问题吗?

最佳答案

setter 只能在一个属性上工作,因此只能有一个值,您得到的错误是合乎逻辑的:它无法理解您要执行的操作,它只能...将一个属性设置为给定值。

因此,我们的想法是为其提供应有的值:附加文本。为此,您可以使用MultiBinding,它采用多个值并将它们返回为一个值,具体取决于您给它的StringFormat:

<Setter.Value>
<MultiBinding StringFormat="{}{0}{1}{2}"><!-- Format as you wish -->
<Binding Path="SelectedItem.iso"/>
<Binding Source="{x:Static System:Environment.NewLine}"/>
<Binding Path="SelectedItem.value"/>
</MultiBinding>
</Setter.Value>

关于StringFormat的注释:您必须在开始时使用 {}来逃避花括号,否则它将它们视为标记扩展名启动器。

关于wpf - WPF样式 setter 中的多个运行元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192277/

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