在WPF绑定中,我如何操作我绑定的数据,例如,将两个字符串连接在一起?

时间:2009-09-05 14:01:58

标签: c# wpf data-binding

我真的希望能够对我绑定的东西进行一些操作。类似于能够在<%#%>中调用S​​tring.Format() ASP.Net中的标签。

例如,假设这是我绑定的类型:

class User {
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public int Age { get; set; }
}

这是我绑定它的标签(我知道这不起作用):

<Label Name="someLabel" Content="{Binding LastName+,+FirstName+ +Age}")/>

我希望结果如何:史密斯,约翰逊32

3 个答案:

答案 0 :(得分:8)

Multibinding + StringFormat(3.5 sp1)!!!!!

<TextBlock>
<TextBlock.Text>
    <MultiBinding StringFormat="{0}, {1} {2}">
      <Binding Path="LastName"/>
      <Binding Path="FirstName"/>
      <Binding Path="Age"/>
    </MultiBinding>
</TextBlock.Text>
</TextBlock>

答案 1 :(得分:3)

试试这个:

class User {
   //...
   public string NameAndAge
   {
      get
      {
         return string.Format("{0}, {1} {2}",LastName , FirstName , Age);
      };
   }
}



<Label Name="someLabel" Content="{Binding NameAndAge}")/>

答案 2 :(得分:0)

我最终这样做了:

<TextBlock>
    <TextBlock Text="{Binding LastName}"/><Run>,</Run>
    <TextBlock Text="{Binding FirstName}"/>
    <TextBlock Text="{Binding Age}"/>
</TextBlock>

如果我遇到同样问题的人,我会在这里留下答案。

我仍然很想知道是否有其他人知道更聪明的方法来实现这一目标,因为这似乎有点蠢。