我想知道是否存在可以在不使用转换器的情况下使用Multibinding的场景,以及迫使我们使用转换器的限制。
特别地,我正在尝试将一个字符串以string.format的方式绑定到另外两个字符串上。
特别地,我正在尝试将一个字符串以string.format的方式绑定到另外两个字符串上。
最常使用没有转换器的MultiBinding
的领域是当您有一个字符串格式将两个单独的值连接在一起时。
例如:
要格式化具有名字、姓氏部分并且您想根据语言环境进行格式化的名称。
<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
相同,但您有多个源值格式化为单个结果,而不是单个输入->单个输出。Binding
通过使用ConverterParameter
提供另一个输入值,但是您有限制,例如不能向其提供运行时绑定值,这使MultiBinding
更适合于要绑定所有输入的多个输入。