UndoManager
Die Klasse UndoManager beobachtet und zeichnet Modelländerungen auf und unterstützt Rückgängig- und Redo-Operationen.
Implementiert: IUndoManager
Konstruktoren
public UndoManager()
undoManager = UndoManager()
Erstellen Sie ein UndoManager, das bereit ist, Modelländerungen aufzuzeichnen, aber noch keine Modelle kennt.
Eigenschaften
public bool ChecksTransactionLevel { get; set; }
value = undoManager.ChecksTransactionLevel
undoManager.ChecksTransactionLevel = value
Gibt oder legt fest, ob dieser Rückgängig-Manager Warnungen an Trace-Hörer ausgibt, wenn Modelländerungen außerhalb einer Transaktion auftreten.
public IList<IUndoableEdit> CompoundEdits { get; private set; }
value = undoManager.CompoundEdits
undoManager.CompoundEdits = value
Erhaltet eine Liste aller Compound Edits.
public CompoundEdit CurrentEdit { get; set; }
value = undoManager.CurrentEdit
undoManager.CurrentEdit = value
Bekommt die aktuelle Compound-Editierung für die Aufzeichnung zusätzlicher Modelländerungsereignisse.
public string CurrentTransactionName { get; }
value = undoManager.CurrentTransactionName
Bekommt den aktuellen Transaktionsnamen, der von String angegeben wird.
public IUndoableEdit EditToRedo { get; }
value = undoManager.EditToRedo
Bekommt die aktuelle IUndoableEdit neu, oder null, wenn es keine gibt.
public IUndoableEdit EditToUndo { get; }
value = undoManager.EditToUndo
Bekommt die aktuelle IUndoableEdit rückgängig gemacht werden, oder null, wenn es keine.
public bool IsUndoingRedoing { get; protected set; }
value = undoManager.IsUndoingRedoing
undoManager.IsUndoingRedoing = value
Diese Eigenschaft ist während eines Anrufs bei Undo oder Redo wahr.
public int MaximumEditCount { get; set; }
value = undoManager.MaximumEditCount
undoManager.MaximumEditCount = value
Bekommt oder legt die maximale Anzahl von zusammengesetzten Bearbeitungen fest, an die sich dieser Undo-Manager erinnern wird.
public IEnumerable<IDiagramModel> Models { get; }
value = undoManager.Models
Erhaltet eine Liste von Modellen, für die diese UndoManager Rückgängig- / Redo-Informationen aufzeichnet.
public IList<string> NestedTransactionNames { get; private set; }
value = undoManager.NestedTransactionNames
undoManager.NestedTransactionNames = value
Erhaltet einen Stapel von laufenden Transaktionsnamen.
public int TransactionLevel { get; protected set; }
value = undoManager.TransactionLevel
undoManager.TransactionLevel = value
Bekommt das aktuelle Transaktionsniveau.
public int UndoEditIndex { get; protected set; }
value = undoManager.UndoEditIndex
undoManager.UndoEditIndex = value
Bringt den Index in CompoundEdits für die aktuelle undoable Bearbeitung.
Methoden
public virtual void AddModel(IDiagramModel model)
undoManager.AddModel(model)
Stellen Sie sicher, dass dieser Rückgängig-Manager von einem IDiagramModel weiß, für den er Benachrichtigungen über geänderte Ereignisse erhält.
- model
public virtual bool CanRedo()
result = undoManager.CanRedo()
Dieses Prädikat ist wahr, wenn man Redo anrufen kann.
public virtual bool CanUndo()
result = undoManager.CanUndo()
Dieses Prädikat ist wahr, wenn man Undo anrufen kann.
public virtual void Clear()
undoManager.Clear()
Löschen Sie alle CompoundEdits und setzen Sie alle anderen Status zurück.
protected virtual CompoundEdit CommitCompoundEdit(CompoundEdit cedit)
result = undoManager.CommitCompoundEdit(cedit)
Diese Methode wird von String aufgerufen, wenn eine zusammengesetzte Bearbeitung vorgenommen wird.
- cedit
- CurrentEdit; dies kann null sein, wenn es keine Änderungen zum Commit-Zeitpunkt gegeben hat
Rückgabe: Standardmäßig ist das Unmodifizierte.
public bool CommitTransaction(string tname)
result = undoManager.CommitTransaction(tname)
Rufen Sie einfach String auf, indem Sie die aktuelle Transaktion mit dem Präsentationsnamen für die Transaktion festlegen.
- tname
- Transaktionsname
Rückgabe: Der Wert des Aufrufs zu String
protected virtual bool EndTransaction(bool commit, string tname)
result = undoManager.EndTransaction(commit, tname)
Stoppen Sie die aktuelle Transaktion, entweder rollen Sie sie zurück oder begehen Sie sie.
- commit
- True, um die Transaktion normal zu beenden; false, um sie abzubrechen und die vorhandenen Änderungen zurückzunehmen
- tname
- der interne, gebietsneutrale Name für die Transaktion
Rückgabe: Treu für eine engagierte Top-Level-Transaktion
public virtual object FindPrimaryObject(IUndoableEdit edit)
result = undoManager.FindPrimaryObject(edit)
Bei einem IUndoableEdit geben Sie ein bearbeitetes Objekt zurück, das das darstellt, was geändert wurde.
- edit
- ein IUndoableEdit, in der Regel entweder ein ModelChangedEventArgs oder ein CompoundEdit
Rückgabe: In der Regel ein Knoten oder ein Link, aber dies kann null sein, wenn es kein solches Objekt gibt, vielleicht weil eine Modelleigenschaft geändert wurde oder weil es keine echten Änderungen im Argument gab.
public virtual void HandleModelChanged(object sender, ModelChangedEventArgs e)
undoManager.HandleModelChanged(sender, e)
Erstellen Sie ein IUndoableEdit für ein geändertes Ereignis.
- sender
- e
public virtual void Redo()
undoManager.Redo()
Stellen Sie den Zustand einiger Modelle nach dem aktuellen IUndoableEdit wiederherstellen.
public virtual void RemoveModel(IDiagramModel model)
undoManager.RemoveModel(model)
Rufen Sie diese Methode auf, um diesen Rückgängig-Manager darüber zu informieren, dass er nicht mehr über geänderte Ereignisse informiert wird.
- model
public bool RollbackTransaction()
result = undoManager.RollbackTransaction()
Rufen Sie einfach String an und rollen Sie die aktuelle Transaktion zurück.
Rückgabe: Der Wert des Aufrufs zu String
protected virtual bool SkipEvent(ModelChangedEventArgs evt)
result = undoManager.SkipEvent(evt)
Dieses Prädikat ist dafür verantwortlich, zu entscheiden, ob ein ModelChangedEventArgs nicht interessant genug ist, um aufgezeichnet zu werden.
- evt
Rückgabe: normalerweise falsch, was dazu führt, dass das gegebene Ereignis erinnert wird; aber wahr für negativ bewertete Aufzählungen von ModelChange.
public virtual bool StartTransaction(string tname)
result = undoManager.StartTransaction(tname)
Beginnen Sie eine Transaktion, bei der die Änderungen von CompoundEdit gehalten werden.
Rückgabe: true, wenn Sie eine Top-Level-Transaktion starten
public virtual void Undo()
undoManager.Undo()
Stellen Sie den Zustand einiger Modelle auf vor dem aktuellen IUndoableEdit wiederherstellen.