属性更改时,可以触发相应的事件,该类必须继承INotifyPropertyChanged接口,编写相应的的事件,代码如下:
public class Person : INotifyPropertyChanged
{
public Person()
{ }
public Person(string p_strName)
{
this.m_strName = p_strName;
}
private string m_strName = string.Empty;
public string Name
{
get
{
return this.m_strName;
}
set
{
this.m_strName = value;
this.OnPropertyChanged(new PropertyChangedEventArgs("Name"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, e);
}
}
}
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
Person m_clsPerson = new Person();
private void button1_Click(object sender, RoutedEventArgs e)
{
m_clsPerson.Name = "Hello" + this.textBox1.Text.Trim();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
m_clsPerson.PropertyChanged +=new System.ComponentModel.PropertyChangedEventHandler(m_clsPerson_PropertyChanged);
}
private void m_clsPerson_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
this.label1.Content = "属性已经改变成:" + this.m_clsPerson.Name ;
}
}