StringFormat的wpf问题

StringFormat的wpf问题,wpf,xaml,multibinding,Wpf,Xaml,Multibinding,我在Text属性中有一个带有多重绑定的TextBlock,并使用StringFormat连接两个结果,添加了一些内容 <TextBlock.Text> <MultiBinding StringFormat="{}{0} {1}" > <Binding Path="Version" /> <Binding Path="OldVersion" StringFormat="{}'({0})'" TargetNullValue="

我在Text属性中有一个带有多重绑定的TextBlock,并使用StringFormat连接两个结果,添加了一些内容

<TextBlock.Text>
   <MultiBinding StringFormat="{}{0} {1}" >
      <Binding Path="Version" />
       <Binding Path="OldVersion" StringFormat="{}'({0})'" TargetNullValue=""/>
    </MultiBinding>
</TextBlock.Text>

第一个StringFormat按预期工作,但第二个未应用:它返回不带括号的值。我不希望在第一个StringFormat中使用括号,因为有时第二个值为Nothing。
提前感谢。

使用
多重绑定时,将忽略内部
StringFormat

使用多重绑定时,StringFormat属性仅适用 在多重绑定上设置时。StringFormat的值,即 忽略任何子绑定对象上的设置。参数的数量 在复合字符串格式中,不能超过子绑定的数量 多重绑定中的对象

您可以使用以下代码,而不是
MultiBinding

<StackPanel Orientation="Horizontal">
    <TextBlock Text="{Binding Version}" />
    <TextBlock Text="{Binding OldVersion, StringFormat=({0}), TargetNullValue=''}" />
</StackPanel>
这种情况下的约束条件如下:

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} {1}" >
            <Binding Path="Version" />
            <Binding Path="OldVersionEx"/>
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>


能否将括号放在第一个字符串格式中<代码>
我不能把它放在第一个参数上,因为第二个参数有时是空的,我想使用TargetNullValue,正如我在问题中所写的。谢谢,它非常有用
<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} {1}" >
            <Binding Path="Version" />
            <Binding Path="OldVersionEx"/>
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>