...
INotifyChanged
By implementing the INotifyChanged interface (or inheriting from a base class which implements it), events can be raised when a property value changes. For the calculator example events will be used to update the user interface when the values for the two input numbers or the calculated result change. The code below shows how the OnPropertyChanged method is called in the property setters to raise the PropertyChangedEventHandler.
private string _firstValue;
private string _secondValue;
private string _result;
public event PropertyChangedEventHandler PropertyChanged;
public string FirstValue
{
get { return _firstValue; }
set
{
_firstValue = value;
OnPropertyChanged("FirstValue");
}
}
public string SecondValue
{
get { return _secondValue; }
set
{
_secondValue = value;
OnPropertyChanged("SecondValue");
}
}
public string Result
{
get { return _result; }
private set
{
_result = value;
OnPropertyChanged("Result");
}
}
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs(propertyName));
}
}
Read more: Arrange act assert