0
我在我的用戶控件類OnPropertyChanged
方法:用戶控件OnPropertyChanged問題
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是:
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
方法中實現此條件?
年,謝謝你。 – Alex