为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMMHUHU 2019-10-06 15:05:13
我目前正在使用TextBlock以下方法绑定名为的属性的值Name:<TextBlock Text="{Binding Name}" />现在,我想将另一个属性绑定ID到same TextBlock。是否可以将两个或多个值绑定到相同的值TextBlock?可以通过简单的串联来完成,例如Name + ID,如果不是,则可以如何实现?
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您可以将其MultiBinding与StringFormat属性结合使用。用法类似于以下内容:


<TextBlock>

    <TextBlock.Text>    

        <MultiBinding StringFormat="{}{0} + {1}">

            <Binding Path="Name" />

            <Binding Path="ID" />

        </MultiBinding>

    </TextBlock.Text>

</TextBlock>

给定Name的Foo值和ID的值,1您在TextBlock中输出的值将为Foo + 1。


Note: .NET 3.5 SP1和3.0 SP2或更高版本仅支持此功能。


查看完整回答
反对 回复 2019-10-06
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

我知道这很晚,但是我想我会添加另一种方式。


您可以利用以下事实:可以使用“ Run s” 来设置Text属性,因此可以使用Run为每个绑定设置多个绑定。如果您无权访问MultiBinding(在为Windows Phone开发时找不到),这将很有用。


<TextBlock>

  <Run Text="Name = "/>

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

  <Run Text=", Id ="/>

  <Run Text="{Binding Id}"/>

</TextBlock>


查看完整回答
反对 回复 2019-10-06
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

如果这些只是文本块(因此是一种单向绑定),而您只想串联值,则只需绑定两个文本块并将它们放在水平堆栈面板中即可。


    <StackPanel Orientation="Horizontal">

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

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

    </StackPanel>

这将显示文本(这是所有Textblock所做的),而无需执行任何其他编码。您可能会给它们留一点利润,以使它们看起来正确。


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 1787 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信