public bool Undo() { if (_undoStack.Count == 0) return false; PushState(_redoStack); PopState(_undoStack); RaisePropertyChanged(() => CanUndo); RaisePropertyChanged(() => CanRedo); return true; }