How to implement INotifyPropertyChanged for derived classes?
c#, windows-phone-8, windows-runtime, wpf, xaml
Solution
Have only PersonBaseClass implementing INotifyPropertyChanged and make NotifyPropertyChange as protected so you can call it from child classes. There is not need to implement it twice. That should fix the problem as well.
Problem
I have a base class: ``` public class PersonBaseClass : INotifyPropertyChanged { private string name; public string Name { get { return name; } set { if (value != name) { name = value; NotifyPropertyChanged("Name"); } } } } ``` and a derived class ``` public class TeacherClass : PersonBaseClass, INotifyPropertyChanged { private string id; public string Id { get { return id; } set { if (value != id) { id = value; NotifyPropertyChanged("Id"); } } } } ``` and this magic code at the end of each one above! ``` public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (null != handler) { handler(this, new PropertyChangedEventArgs(propertyName)); } } ``` Then I show a list of `Teachers` collection in a list in xaml. Now if I change `Id`, changes will appear for user, but changes in `Name` which is a property in base class doesn't appear. In debug, I see after setting `Name` value, the `handler` inside `NotifyPropertyChanged` method is null which seems it is the problem. How can I solve it to changes of base class also appear in the list?