本文整理汇总了C#中Dynamo.Core.UndoRedoRecorder.PopFromUndoGroup方法的典型用法代码示例。如果您正苦于以下问题:C# UndoRedoRecorder.PopFromUndoGroup方法的具体用法?C# UndoRedoRecorder.PopFromUndoGroup怎么用?C# UndoRedoRecorder.PopFromUndoGroup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dynamo.Core.UndoRedoRecorder
的用法示例。
在下文中一共展示了UndoRedoRecorder.PopFromUndoGroup方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DiscardChangesAndOptionallyRemoveNode
private void DiscardChangesAndOptionallyRemoveNode(UndoRedoRecorder recorder)
{
if (!string.IsNullOrEmpty(InnerTextEditor.Text))
{
throw new InvalidOperationException(
"This method is meant only for empty text box");
}
if (createdForNewCodeBlock)
{
// If this editing was started due to a new code block node,
// then by this point the creation of the node would have been
// recorded, we need to pop that off the undo stack. Note that
// due to various external factors a code block node loaded
// from file may be created empty. In such cases, the creation
// step would not have been recorded (there was no explicit
// creation of the node, it was created from loading of a file),
// and nothing should be popped off of the undo stack.
//
if (recorder.CanUndo)
recorder.PopFromUndoGroup(); // Pop off creation action.
}
else
{
// If the editing was started for an existing code block node,
// and user deletes the text contents, it should be restored to
// the original codes.
InnerTextEditor.Text = nodeModel.Code;
}
}
示例2: CommitChanges
private void CommitChanges(UndoRedoRecorder recorder)
{
// Code block editor can lose focus in many scenarios (e.g. switching
// of tabs or application), if there has not been any changes, do not
// commit the change.
//
if (!nodeModel.Code.Equals(InnerTextEditor.Text))
{
nodeViewModel.DynamoViewModel.ExecuteCommand(
new DynCmd.UpdateModelValueCommand(
nodeViewModel.WorkspaceViewModel.Model.Guid,
nodeModel.GUID,
"Code", InnerTextEditor.Text));
}
if (createdForNewCodeBlock)
{
// If this editing was started due to a new code block node,
// then by this point there would have been two action groups
// recorded on the undo-stack: one for node creation, and
// another for node editing (as part of ExecuteCommand above).
// Pop off the two action groups...
//
recorder.PopFromUndoGroup(); // Pop off modification action.
// Note that due to various external factors a code block node
// loaded from file may be created empty. In such cases, the
// creation step would not have been recorded (there was no
// explicit creation of the node, it was created from loading
// of a file), and nothing should be popped off of the undo stack.
if (recorder.CanUndo)
recorder.PopFromUndoGroup(); // Pop off creation action.
// ... and record this new node as new creation.
using (recorder.BeginActionGroup())
{
recorder.RecordCreationForUndo(nodeModel);
}
}
}