【发布时间】:2011-07-20 19:36:17
【问题描述】:
是否可以在 WPF 中绑定到 2 个元素?
例如,我想在文本框中显示类似 myserver.com:80 的内容。 所以要做到这一点,我想绑定到一个主机字段,然后添加一个“:”,然后绑定到我的对象中的一个端口字段,所有这些都具有相同的标签内容。
【问题讨论】:
标签: c# wpf data-binding binding
是否可以在 WPF 中绑定到 2 个元素?
例如,我想在文本框中显示类似 myserver.com:80 的内容。 所以要做到这一点,我想绑定到一个主机字段,然后添加一个“:”,然后绑定到我的对象中的一个端口字段,所有这些都具有相同的标签内容。
【问题讨论】:
标签: c# wpf data-binding binding
在 WPF 4/3.5SP1 中,您可以将 MultiBinding 与 StringFormat 结合使用:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{0}:{1}">
<Binding Path="Host"/>
<Binding Path="Port"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
在 WPF 4 之前,您仍然可以使用 MultiBinding,但需要编写自己的转换器。
这两种方法的替代方法是执行 MVVM 并公开一个为视图连接的属性,然后视图直接绑定到该属性。
【讨论】:
StringFormat 从 .NET 3.5 SP1 开始可用