如何将多个字段绑定到WPF中的一个TextBlock?

Jon*_*len 3 wpf xaml

这是我目前的代码:

<StackPanel Grid.Column="4" Grid.Row="1">
    <TextBlock Text="{Binding Strain}"  />
    <TextBlock Text="/"  />
    <TextBlock Text="{Binding MaximumStrain}"  />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我想做的是有一个TextBlock,表达式为"{Strain}/{MaximumStrain}"

Dar*_*lar 5

那么你可以使用"运行"命令,试试这个:

    <StackPanel>
        <TextBlock>
            <Run Text="{Binding Strain}"></Run>
            <Run Text="/"></Run>
            <Run Text="{Binding MaximumStrain}"></Run>
        </TextBlock>
    </StackPanel>
Run Code Online (Sandbox Code Playgroud)

优点:可以更改每个字体设置Run.

为避免在文本之间添加空格,您只需将Run命令放在同一行中,如下所示:

<Run Text="{Binding Strain}"></Run><Run Text="/"></Run><Run Text="{Binding MaximumStrain}"></Run>
Run Code Online (Sandbox Code Playgroud)


Jai*_*Jai 5

将Multibinding与stringformat一起使用。

<TextBlock Grid.Column="4" Grid.Row="1">
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0}/{1}">
            <Binding Path="Strain" />
            <Binding Path="MaximumStrain" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

优点:直接控制间距。

缺点:

  • 没有复杂的字体样式。
  • Mode=OneWay在某些情况下需要。根据使用情况,可能会引发错误或无提示地绑定失败。