У меня есть метод OnPropertyChanged
в моем классе UserControl:
private static void OnColorChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
ColorPicker colorPicker = (ColorPicker)sender;
Color oldColor = (Color)e.OldValue;
Color newColor = (Color)e.NewValue;
colorPicker.Red = newColor.R;
colorPicker.Green = newColor.G;
colorPicker.Blue = newColor.B;
colorPicker._previousColors.Push(oldColor); //don't update if undo command executed
colorPicker.OnColorChanged(oldColor, newColor);
}
_previousColors is:
private Stack<Color> _previousColors = new Stack<Color>();
, и я не хочу обновлять этот стек, если выполнена команда отмены:
private void UndoCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = _previousColors.Count > 1;
}
private void UndoCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
var color = _previousColors.Pop();
this.Color = color;
}
Как реализовать это условие в методе OnColorChanged
?