对于单个绑定,我们使用:

<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 ??????}"/>
有帮助吗?

解决方案

根据 MSDN,你的第二个例子(“使用 MultiBinding 和单个 Binding 的更短语法”)不应该起作用,也不应该在 .net 3.5 也不在 .net 4.0:

笔记:

MultiBinding 和 PriorityBinding 不支持 XAML 扩展语法(尽管共享相同的 BindingBase 类,该类实际上实现了 Binding 的 XAML 行为)。

因此,如果它对您有效,那是偶然的,而且它不是受支持的行为。


附:您不需要使用 MultiBinding 单身的 捆绑。以下应该足够了:

<TextBlock>
    <TextBlock.Text>
        <Binding Path="EmployeeName" />
    </TextBlock.Text>
</TextBlock>

或者

<TextBlock Text="{Binding Path=EmployeeName}"/>

甚至更短

<TextBlock Text="{Binding EmployeeName}"/>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top