如何在绑定时设置操作Content属性?

时间:2015-01-03 16:58:23

标签: c# wpf xaml data-binding

假设我们有以下模板。

<DataTemplate>
  <CheckBox Content="{Binding FirstName}"/>
</DataTemplate>

父控件绑定到 Blipp 类型的静态属性,定义如下。

class Blipp
{
  public int Id { get; set; }
  public String FirstName { get; set; }
  public String LastName { get; set; }
}

如果我希望复选框显示全名怎么办?好吧,我可以定义一个新属性并绑定到它。

public String FullName { get { return FirstName + LastName; } }

<CheckBox Content="{Binding FirstName}" />

但那只是隐藏了实际的问题。如果我希望自由操纵内容的内容,该怎么办?有一天,也许我希望文本成为别的东西。是否真的有必要继续添加这样的额外属性?

public String Text1 { get { return FirstName + Id; } }
public String Text2 { get { return LastName + Id; } }
public String Text3 { get { return Id + ") " + FullName; } }
...

相反,我希望能够自定义 Content 属性。我尝试过以下但是编译器没有让我这么做。

<DataTemplate>
  <CheckBox Content="{Binding FirstName} + {Binding Id}"/>
</DataTemplate>

有可能吗?怎么样?

1 个答案:

答案 0 :(得分:1)

您需要一个多值转换器

multivalueconverter

我知道链接只有答案是不鼓励的,但链接有一个确切的问题的例子和msdn的链接不会死了