Jun*_*r M 8 wpf xaml binding string-formatting multibinding
对于单个绑定,我们使用:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}">
<Binding Path=EmployeeName/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
或更短的语法:
<TextBlock
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/>
Run Code Online (Sandbox Code Playgroud)
现在,如果你有多重绑定:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {2}">
<Binding Path="EmployeeName"/>
<Binding Path="Age"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
我想知道,它的短语法是什么?
<TextBlock
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
Run Code Online (Sandbox Code Playgroud)
根据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>
Run Code Online (Sandbox Code Playgroud)
要么
<TextBlock Text="{Binding Path=EmployeeName}"/>
Run Code Online (Sandbox Code Playgroud)
甚至更短
<TextBlock Text="{Binding EmployeeName}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7379 次 |
| 最近记录: |