Вы можете реализовать интерфейс INotifyPropertyChanged в пространстве имен System.ComponentModel.Я обычно реализую метод Changed, который может принимать несколько имен свойств и проверять, не установлено ли событие.Я делаю это потому, что иногда у меня есть несколько свойств, которые зависят от одного значения, и я могу вызвать один метод из всех моих установщиков свойств.
Например, если у вас есть класс Rectangle со свойствами Width и Height и чтение Area-только свойство, которое возвращает ширину * высоту, вы можете поставить измененным («ширина», «площадь»);в установщике свойств для Width.
public class TestModel : INotifyPropertyChanged
{
int m_TestCounter;
public int TestCounter {
get {
return m_TestCounter;
}
set {
m_TestCounter = value;
Changed("TestCounter");
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
void Changed(params string[] propertyNames)
{
if (PropertyChanged != null)
{
foreach (string propertyName in propertyNames)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}