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

How to set manipulate Content property while 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}" />

但这只是隐藏了真正的问题。如果我想自由操纵Content的内容怎么办?有一天,也许我希望文本是另一回事。像这样继续添加额外的属性真的有必要吗?

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>

可能吗?怎么样?

您需要一个多值转换器

multivalueconverter

我知道 link 不鼓励只回答,但 link 有一个确切问题的例子,link 到 msdn 不会死