【发布时间】:2014-05-10 05:08:35
【问题描述】:
我有一个基类:
public class PersonBaseClass : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
if (value != name)
{
name = value;
NotifyPropertyChanged("Name");
}
}
}
}
还有一个派生类
public class TeacherClass : PersonBaseClass, INotifyPropertyChanged
{
private string id;
public string Id
{
get { return id; }
set
{
if (value != id)
{
id = value;
NotifyPropertyChanged("Id");
}
}
}
}
以及上面每个结尾处的魔术代码!
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (null != handler)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
然后我在 xaml 的列表中显示Teachers 集合的列表。现在,如果我更改Id,将为用户显示更改,但不会出现基类中的属性Name 的更改。在调试中,我看到设置Name 值后,NotifyPropertyChanged 方法中的handler 为空,这似乎是问题所在。
如何解决基类的变化也出现在列表中?
【问题讨论】:
标签: c# wpf xaml windows-phone-8 windows-runtime