对于单个绑定,我们使用:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}">
<Binding Path=EmployeeName/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
或更短的语法:
<TextBlock
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/>
现在,如果您有多重绑定:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {2}">
<Binding Path="EmployeeName"/>
<Binding Path="Age"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
我想知道,它的语法会更短吗?
<TextBlock
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
答案 0 :(得分:5)
根据MSDN,您的第二个示例(“使用带有单个绑定的MultiBinding的较短语法”)不应该在.net 3.5和.net 4.0中都有效:
注意:
MultiBinding和PriorityBinding不支持XAML扩展语法(尽管共享相同的BindingBase类,它实际上实现了Binding的XAML行为)。
所以,如果它适合你,那是偶然的,并且它不受支持的行为。
PS:您不需要将MultiBinding用于单个绑定。以下就足够了:
<TextBlock>
<TextBlock.Text>
<Binding Path="EmployeeName" />
</TextBlock.Text>
</TextBlock>
或
<TextBlock Text="{Binding Path=EmployeeName}"/>
甚至更短
<TextBlock Text="{Binding EmployeeName}"/>