我想知道是否存在可以使用不带转换器的多重绑定的情况 - 以及迫使我们使用转换器的限制。
特别是我试图将字符串绑定到string.format样式中的另外两个字符串。
答案 0 :(得分:2)
在没有转换器的情况下使用MultiBinding
的最常见区域是当您使用字符串格式连接两个单独的值时
比如说:
格式化具有First,Last部分的名称,并且您希望根据区域设置
对其进行格式化<StackPanel>
<TextBlock x:Name="firstName"
Text="John" />
<TextBlock x:Name="lastName"
Text="Wayne" />
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding ElementName="firstName"
Path="Text" />
<Binding ElementName="lastName"
Path="Text" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
你确实看到很多地方使用转换器,因为使用MultiBinding
你做的事情和Binding
一样,但你有多个源值被格式化为单个结果而不是单个输入 - &GT;单输出。
你可以让Binding取一个ConverterParameter
来提供另一个输入值但是你有一些限制,比如无法为它提供运行时Bound值,这使得MultiBinding
更适合于多个输入你想绑定所有这些。
归结为您的用例,如果您想根据自定义方式评估的不同输入类型提供结果,则需要一个转换器(与Binding非常相似。只需将其区分为1输入可绑定值对多个)