/// <summary> /// 添加一个操作 /// </summary> /// <param name="operation">要添加的操作</param> public void Record(Operation operation) { if (operation != null && IsRecording) { var stack = new OperationStack(operation.PropertyName.ToString()); stack.Push(operation); var recordTime = DateTime.Now; Recording?.Invoke(stack, recordTime); UndoStack.Push(new Tuple <OperationStack, DateTime>(stack, recordTime)); RedoStack.Clear(); Recorded?.Invoke(stack, recordTime); } }