PropertyChanged работает нормально, так что это должно быть в вашей реализации. Простая реализация измененного INotifyProperty не достаточно хороша, вам просто нужно вызвать событие.
Например, это не будет работать:
public class Model : INotifyPropertyChanged
{
public string Title { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
Для того, чтобы он заработал, необходимо поднять свойство изменено. Самый простой способ - заключить логику в метод, например так:
public class Model : INotifyPropertyChanged
{
private string _title;
public string Title
{
get { return _title; }
set
{
_title = value;
RaisePropertyChanged("Title");
}
}
protected void RaisePropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
Конечно, вы можете поместить событие и метод в базовый класс для наследования, чтобы его могли использовать несколько моделей.