UndoManager
Класс UndoManager наблюдает и записывает изменения модели и поддерживает операции отмены и повтора.
Реализует: IUndoManager
Конструкторы
public UndoManager()
undoManager = UndoManager()
Создайте UndoManager, который готов записывать модификации моделей, но пока не знает о каких-либо моделях.
Свойства
public bool ChecksTransactionLevel { get; set; }
value = undoManager.ChecksTransactionLevel
undoManager.ChecksTransactionLevel = value
Получает или устанавливает, будет ли этот менеджер отключения выдавать предупреждения слушателям, когда изменения модели происходят за пределами транзакции.
public IList<IUndoableEdit> CompoundEdits { get; private set; }
value = undoManager.CompoundEdits
undoManager.CompoundEdits = value
Получил список всех сложных правок.
public CompoundEdit CurrentEdit { get; set; }
value = undoManager.CurrentEdit
undoManager.CurrentEdit = value
Получает текущее сложное редактирование для записи дополнительных событий изменения модели.
public string CurrentTransactionName { get; }
value = undoManager.CurrentTransactionName
Получает текущее название транзакции, данное String.
public IUndoableEdit EditToRedo { get; }
value = undoManager.EditToRedo
Получает текущий IUndoableEdit, чтобы быть переделанным, или нуль, если нет.
public IUndoableEdit EditToUndo { get; }
value = undoManager.EditToUndo
Получает текущий IUndoableEdit быть отменены, или недействительным, если нет.
public bool IsUndoingRedoing { get; protected set; }
value = undoManager.IsUndoingRedoing
undoManager.IsUndoingRedoing = value
Это свойство верно во время звонка в Ундо или Редо.
public int MaximumEditCount { get; set; }
value = undoManager.MaximumEditCount
undoManager.MaximumEditCount = value
Получает или устанавливает максимальное количество сложных правок, которые запомнит этот менеджер отмены.
public IEnumerable<IDiagramModel> Models { get; }
value = undoManager.Models
Получает список моделей, для которых этот UndoManager записывает информацию о не-редо.
public IList<string> NestedTransactionNames { get; private set; }
value = undoManager.NestedTransactionNames
undoManager.NestedTransactionNames = value
Получает стопку текущих имен транзакций.
public int TransactionLevel { get; protected set; }
value = undoManager.TransactionLevel
undoManager.TransactionLevel = value
Получает текущий уровень транзакций.
public int UndoEditIndex { get; protected set; }
value = undoManager.UndoEditIndex
undoManager.UndoEditIndex = value
Получает индекс в CompoundEdits для текущего неотменяемого редактирования.
Методы
public virtual void AddModel(IDiagramModel model)
undoManager.AddModel(model)
Убедитесь, что этот менеджер удаленных данных знает о IDiagramModel, для которого он получает уведомления об изменениях модели.
- model
public virtual bool CanRedo()
result = undoManager.CanRedo()
Этот предикат истинен, когда можно вызвать Redo.
public virtual bool CanUndo()
result = undoManager.CanUndo()
Этот предикат истинен, когда можно вызвать Undo.
public virtual void Clear()
undoManager.Clear()
Очистите все CompoundEdits и сбросьте все остальные состояния.
protected virtual CompoundEdit CommitCompoundEdit(CompoundEdit cedit)
result = undoManager.CommitCompoundEdit(cedit)
Этот метод называется String при выполнении сложного редактирования.
- cedit
- CurrentEdit; это может быть недействительным, если в момент совершения сделки не было никаких изменений
Возвращает: По умолчанию, неизмененный.
public bool CommitTransaction(string tname)
result = undoManager.CommitTransaction(tname)
Просто позвоните в String, совершая текущую транзакцию, с презентационным названием для транзакции.
- tname
- Название сделки
Возвращает: Значение призыва к струне
protected virtual bool EndTransaction(bool commit, string tname)
result = undoManager.EndTransaction(commit, tname)
Остановите текущую транзакцию, либо откатите ее назад, либо совершите ее.
- commit
- истинное прекращение транзакции в обычном режиме; ложное прерывание ее и откат существующих правок
- tname
- внутреннее локально-нейтральное название для транзакции;
Возвращает: Это верно для совершенной транзакции на высшем уровне
public virtual object FindPrimaryObject(IUndoableEdit edit)
result = undoManager.FindPrimaryObject(edit)
При наличии IUndoableEdit возвращайте отредактированный объект, который представляет собой то, что было изменено.
- edit
- a IUndoableEdit, обычно либо ModelChangedEventArgs, либо CompoundEdit
Возвращает: Обычно это узел или ссылка, но это может быть нулевым, если такого объекта нет, возможно, потому, что свойство модели было изменено или потому, что в аргументе не было реальных правок.
public virtual void HandleModelChanged(object sender, ModelChangedEventArgs e)
undoManager.HandleModelChanged(sender, e)
Создайте IUndoableEdit для Измененного события.
- sender
- e
public virtual void Redo()
undoManager.Redo()
Восстановить состояние некоторых моделей после текущего IUndoableEdit.
public virtual void RemoveModel(IDiagramModel model)
undoManager.RemoveModel(model)
Назовите этот метод, чтобы сообщить этому менеджеру отмены, что он больше не будет уведомлен о событиях, изменивших модель.
- model
public bool RollbackTransaction()
result = undoManager.RollbackTransaction()
Просто позвони Стрингу, откатив текущую транзакцию.
Возвращает: Значение призыва к струне
protected virtual bool SkipEvent(ModelChangedEventArgs evt)
result = undoManager.SkipEvent(evt)
Этот предикат отвечает за принятие решения о том, является ли ModelChangedEventArgs достаточно интересным для записи.
- evt
Возвращает: Обычно ложные, что приводит к запоминанию данного события; но верные для отрицательных значений перечня ModelChange.
public virtual bool StartTransaction(string tname)
result = undoManager.StartTransaction(tname)
Начните транзакцию, где изменения проводятся по адресу CompoundEdit.
Возвращает: Правда, если начать транзакцию на высшем уровне
public virtual void Undo()
undoManager.Undo()
Восстановить состояние некоторых моделей до текущего IUndoableEdit.