我们可以在数据绑定中连接两个属性吗?

TCM*_*TCM 41 wpf silverlight-4.0

我们可以在绑定表达式中将两个属性连接起来吗?如果可能没有转换器或没有编写两个文本块并单独设置它们?

Naw*_*waz 90

如果你想展示,说FirstNameLastName,在一个单一的TextBlock,你可以这样做:

<TextBlock>
     <Run Text="{Binding FirstName}" />
     <Run Text="   " /> <!-- space -->
     <Run Text="{Binding LastName}" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

现在,如果Text出现以下情况"Sachin Tendulkar",将显示TextBlock的属性:

FirstName = Sachin
LastName  = Tendulkar
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 正是我需要的.谢谢! (4认同)

Tom*_*Tom 16

就像alpha-mouse建议MultiBinding不会开箱即用,但是这个家伙已经抛出了一些可能有用的东西:

http://www.olsonsoft.com/blogs/stefanolson/post/Improvements-to-Silverlight-Multi-binding-support.aspx

如果这看起来有点流氓,那么可以尝试在对象上放置一个组合值属性作为Binding机制的帮助器,如:

public string FullName {
   get { return this.FirstName + " " + this.LastName; }
}
Run Code Online (Sandbox Code Playgroud)

  • 使用`<TextBlock> <Run Text ="..."/> <Run Text ="..."/> </ TextBlock>`是一个更简洁的XAML解决方案(参见下面的其他答案). (13认同)

Kir*_*k g 15

<TextBlock.Text>
   <MultiBinding StringFormat="{}{0} , {1}">
     <Binding Path="data1" />
     <Binding Path="data2" />
    </MultiBinding>
</TextBlock.Text>
Run Code Online (Sandbox Code Playgroud)

data1和data2是绑定的字符串属性.

  • 这是一个很好的解决方案,因为它适用于更复杂的组件,如`DataGrid.TextColumn`. (4认同)

alp*_*use 6

MultiFinding和StringFormat 的帮助下,WPF中可以实现.但不幸的是,不是在Silverlight中.


rez*_*e08 5

如果您需要添加任何字符串,请尝试。这里我在windows phone中绑定文本后添加“%”。

<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>
Run Code Online (Sandbox Code Playgroud)