WPF绑定 - 通知更改ToString值

Dav*_*ard 10 data-binding wpf

我有一个绑定到对象的文本块.这个对象我重写了ToString以返回其他2个属性的组合.如何在更新其中一个属性值时通知ToString值已更改?

不幸的是我无法更改绑定到ToString值,因为这是在第三方控件内,所以真的需要能够直接通知.

希望下面的课程定义能澄清我的意思:

public class Person : INotifyPropertyChanged
{
  private string firstname;
  public string Firstname
  {
    get { return firstname; }
    set
    {
      firstname = value;
      OnPropertyChanged("Firstname");
    }
  }

  private string surname;
  public string Surname
  {
    get { return surname; }
    set
    {
      surname = value;
      OnPropertyChanged("Surname");
    }
  }

  public override string ToString()
  {
    return string.Format("{0}, {1}", surname, firstname);
  }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*wen 3

我假设当您说控件“绑定”到 ToString() 时,您的对象正在不可访问的代码内的某处用作 ContentControl 上的内容,默认情况下会创建一个显示 ToString 值的 TextBlock (如果您不确定可以与史努比一起找出答案)。如果您在控件的资源中为 Person 类型创建全局类型化 DataTemplate,则可以使用它来显示不同的属性,例如新的 FullName 属性:

<ThirdPartyControl.Resources>
  <DataTemplate DataType="{x:Type data:Person}">
    <TextBlock Text="{Binding FullName}"/>
  </DataTemplate>
</ThirdPartyControl.Resources>
Run Code Online (Sandbox Code Playgroud)