8

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

<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 ??????}"/>
4

1 回答 1

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}"/>
于 2009-12-07T16:26:05.823 回答