Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多个字段绑定到WPF中的一个文本块?_Wpf_Xaml - Fatal编程技术网

如何将多个字段绑定到WPF中的一个文本块?

如何将多个字段绑定到WPF中的一个文本块?,wpf,xaml,Wpf,Xaml,这是我当前的代码: <StackPanel Grid.Column="4" Grid.Row="1"> <TextBlock Text="{Binding Strain}" /> <TextBlock Text="/" /> <TextBlock Text="{Binding MaximumStrain}" /> </StackPanel> 我想做的是使用一个带有表达式“{Strain}/{Maxim

这是我当前的代码:

<StackPanel Grid.Column="4" Grid.Row="1">
    <TextBlock Text="{Binding Strain}"  />
    <TextBlock Text="/"  />
    <TextBlock Text="{Binding MaximumStrain}"  />
</StackPanel>

我想做的是使用一个带有表达式“{Strain}/{MaximumStrain}”的TextBlock

您可以使用“Run”命令,尝试以下操作:

    <StackPanel>
        <TextBlock>
            <Run Text="{Binding Strain}"></Run>
            <Run Text="/"></Run>
            <Run Text="{Binding MaximumStrain}"></Run>
        </TextBlock>
    </StackPanel>

将多重绑定与stringformat一起使用

<TextBlock Grid.Column="4" Grid.Row="1">
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0}/{1}">
            <Binding Path="Strain" />
            <Binding Path="MaximumStrain" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>


优点:直接控制间距

缺点:

  • 没有复杂的字体样式
  • 在某些情况下需要
    Mode=one-way
    。可能会抛出错误或自动绑定失败,具体取决于用例

P.S.我实际上不需要文本块。另一个视觉上相似的控件也会起作用。请快速思考。可以将其绑定到列表/集合并使用转换器吗?很难选择赢家。这两种答案都有各自的优点和局限性。这个问题现在应该对很多人很有用。感谢Jonathan指出每种方法的优缺点:)
<TextBlock Grid.Column="4" Grid.Row="1">
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0}/{1}">
            <Binding Path="Strain" />
            <Binding Path="MaximumStrain" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>