如何将多个值绑定到单个WPF TextBlock?

我目前正在使用TextBlock以下方法绑定名为的属性的值Name:


<TextBlock Text="{Binding Name}" />

现在,我想将另一个属性绑定ID到same TextBlock。


是否可以将两个或多个值绑定到相同的值TextBlock?可以通过简单的串联来完成,例如Name + ID,如果不是,则可以如何实现?


MMMHUHU
浏览 1867回答 3
3回答

FFIVE

您可以将其MultiBinding与StringFormat属性结合使用。用法类似于以下内容:<TextBlock>&nbsp; &nbsp; <TextBlock.Text>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <MultiBinding StringFormat="{}{0} + {1}">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <Binding Path="Name" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <Binding Path="ID" />&nbsp; &nbsp; &nbsp; &nbsp; </MultiBinding>&nbsp; &nbsp; </TextBlock.Text></TextBlock>给定Name的Foo值和ID的值,1您在TextBlock中输出的值将为Foo + 1。Note: .NET 3.5 SP1和3.0 SP2或更高版本仅支持此功能。

慕码人8056858

我知道这很晚,但是我想我会添加另一种方式。您可以利用以下事实:可以使用“ Run s” 来设置Text属性,因此可以使用Run为每个绑定设置多个绑定。如果您无权访问MultiBinding(在为Windows Phone开发时找不到),这将很有用。<TextBlock>&nbsp; <Run Text="Name = "/>&nbsp; <Run Text="{Binding Name}"/>&nbsp; <Run Text=", Id ="/>&nbsp; <Run Text="{Binding Id}"/></TextBlock>

摇曳的蔷薇

如果这些只是文本块(因此是一种单向绑定),而您只想串联值,则只需绑定两个文本块并将它们放在水平堆栈面板中即可。&nbsp; &nbsp; <StackPanel Orientation="Horizontal">&nbsp; &nbsp; &nbsp; &nbsp; <TextBlock Text="{Binding Name}"/>&nbsp; &nbsp; &nbsp; &nbsp; <TextBlock Text="{Binding ID}"/>&nbsp; &nbsp; </StackPanel>这将显示文本(这是所有Textblock所做的),而无需执行任何其他编码。您可能会给它们留一点利润,以使它们看起来正确。
打开App,查看更多内容
随时随地看视频慕课网APP