WPF样式设置器中的多个运行元素

Nut*_*uts 5 wpf styles textblock

是否有可能在XAML定义多Run一个内部的Style制定者?

以下两个已Run定义并失败:

物业'价值'不止一次设定.

<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 Code Online (Sandbox Code Playgroud)

这可以修复,同时保留多个的使用Run

Kil*_*zur 5

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>
Run Code Online (Sandbox Code Playgroud)

关于StringFormat的注意事项:您必须{}在start时使用它来转义大括号,否则它会将它们视为标记扩展启动器.