예제 #1
0
 /// <summary>
 /// 将会用作主要的函数来记录操作。
 /// </summary>
 /// <param name="operations"></param>
 /// <param name="operationTime"></param>
 public void Record(OperationStack operations, DateTime operationTime)
 {
     if (operations != null)
     {
         Recording?.Invoke(operations, operationTime);
         UndoStack.Push(new Tuple <OperationStack, DateTime>(operations, operationTime));
         Recorded?.Invoke(operations, operationTime);
     }
 }
예제 #2
0
 /// <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);
     }
 }