对于单个绑定(bind),我们使用:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}">
<Binding Path=EmployeeName/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
或更短的语法:
<TextBlock
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/>
现在,如果你有多重绑定(bind):
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {2}">
<Binding Path="EmployeeName"/>
<Binding Path="Age"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
我想知道,它的较短语法是什么?
<TextBlock
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
最佳答案
根据 MSDN,您的第二个示例(“使用具有单个绑定(bind)的 MultiBinding 的更短语法”)在 .net 3.5 中也不应该工作。也不在 .net 4.0 :
Note:
MultiBinding and PriorityBinding do not support a XAML extension syntax (despite sharing the same BindingBase class, which actually implements the XAML behavior for Binding).
所以,如果它对你有用,那是偶然的,它不是受支持的行为。
PS:您不需要将 MultiBinding 用于单个绑定(bind)。以下应该足够了:
<TextBlock>
<TextBlock.Text>
<Binding Path="EmployeeName" />
</TextBlock.Text>
</TextBlock>
或者
<TextBlock Text="{Binding Path=EmployeeName}"/>
甚至更短
<TextBlock Text="{Binding EmployeeName}"/>
关于wpf - 使用带有多个绑定(bind)的 StringFormat 的 Multibinding 的较短 xaml 语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1861009/