VM이 INotifyPropertyChanged을 구현하는지 확인한 다음 이전 값을 재설정하는 속성의 값이 변경되면 알림을 보내도록하십시오. Binding은 바인딩 된 컨트롤을 업데이트합니다.
public class ViewModel : INotifyPropertyChanged
{
public object PropertyToReset
{
get { return _propertyToReset; }
set
{
if (_propertyToReset == value) { return; }
// capture the old value in case the user decides not to change the value
_oldPropertyToResetValue = _propertyToReset;
_propertyToReset = value;
NotifyPropertyChanged("PropertyToReset");
}
}
public bool IsPropertyChanging
{
get { _isPropertyChanging; }
set
{
if (_isPropertyChanging == value) { return; }
_isPropertyChanging = value;
NotifyPropertyChanged("IsPropertyChanging");
if (value == false) { PropertyToReset = _oldPropertyToResetValue; }
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}