wpf - 使用带有多个绑定(bind)的 StringFormat 的 Multibinding 的较短 xaml 语法是什么?

标签 wpf xaml binding multibinding string-formatting

对于单个绑定(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/

相关文章:

.net - 'ItemsSource="{绑定(bind)}"'是什么意思?

android - 库模块中的数据绑定(bind)

forms - jquery mobile和 knockout 单提交绑定(bind)

c# - 你打算如何声明一个依赖属性?

c# - 在具有扩展选择模式的列表框中单击取消选择

c# - 我如何从组合框中获取值并将其显示到文本框

c# - 检查kinect是否连接

c# - 动态宽度列 xaml 不起作用

c# - DataGrid CellTemplate TabNavigation

c# - 如何将一个对象的成员绑定(bind)到数据网格