public void ProcessChange(IChange change) { if (IsEnabled) { if (_undoGroupIndex > 0) { _undoGroup.Add(change); } else { if (!change.IsShallow) { ++_undoCounter; _redoCounter = 0; _redoStack.Clear(); } _undoStack.Add(change); } } }