ModelEditingScope - класс

Представляет группу изменений в хранилище редактирования.

Иерархия наследования

System.Object
  Microsoft.Windows.Design.Model.ModelEditingScope

Пространство имен:  Microsoft.Windows.Design.Model
Сборка:  Microsoft.Windows.Design.Interaction (в Microsoft.Windows.Design.Interaction.dll)

Синтаксис

'Декларация
Public MustInherit Class ModelEditingScope _
    Implements IDisposable
public abstract class ModelEditingScope : IDisposable
public ref class ModelEditingScope abstract : IDisposable
[<AbstractClass>]
type ModelEditingScope =  
    class
        interface IDisposable
    end
public abstract class ModelEditingScope implements IDisposable

Тип ModelEditingScope предоставляет следующие члены.

Конструкторы

  Имя Описание
Защищенный метод ModelEditingScope Инициализирует новый экземпляр класса ModelEditingScope.

В начало страницы

Свойства

  Имя Описание
Открытое свойство Description Возвращает или задает описание группы.

В начало страницы

Методы

  Имя Описание
Защищенный метод CanComplete Определяет возможность вызова метода OnComplete или необходимость отмены изменения.
Открытый метод Complete Завершение области редактирования.
Открытый метод Dispose() Освобождает все ресурсы, используемые объектом ModelEditingScope.
Защищенный метод Dispose(Boolean) Освобождает неуправляемые ресурсы, используемые классом ModelEditingScope (при необходимости освобождает также управляемые ресурсы).
Открытый метод Equals Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.)
Защищенный метод Finalize Вызывается во время завершения для отмены группы. (Переопределяет Object.Finalize().)
Открытый метод GetHashCode Играет роль хэш-функции для определенного типа. (Унаследовано от Object.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Защищенный метод OnComplete Выполнение фактического завершения области редактирования.
Защищенный метод OnRevert Выполнение фактического восстановления области редактирования.
Открытый метод Revert Освобождение изменений, выполненных в области редактирования.
Открытый метод ToString Возвращение строки, представляющей текущий объект. (Унаследовано от Object.)
Открытый метод Update Выполняет синхронное обновление представления.

В начало страницы

Заметки

Группы изменений являются транзакционными объектами. Изменения в области редактирования могут сохраняться и отменяться как единый блок.

При сохранении области редактирования все изменения сохраняются в хранилище редактирования и применяются к модели. При вызове метода Revert области редактирования или ее удалении до вызова метода Complete восстанавливаются все изменения базовых объектов области, или применяется состояние, сохраненное в хранилище редактирования. Благодаря этому в системе обеспечивается надежный механизм отмены действий.

Всегда заключайте области изменения в операторы using или блоки try/finally. Если возникает исключение, изменение отменяется в вызове метода Dispose.

Примеры

' The SetHeightAndWidth utility method sets the Height and Width
' properties through the model and commits the change.
Private Sub SetHeightAndWidth(ByVal [auto] As Boolean) 

    settingProperties = True

    Dim batchedChange As ModelEditingScope = adornedControlModel.BeginEdit()
    Try
        Dim widthProperty As ModelProperty = adornedControlModel.Properties("Width")

        Dim heightProperty As ModelProperty = adornedControlModel.Properties("Height")

        If [auto] Then
            widthProperty.ClearValue()
            heightProperty.ClearValue()
        Else
            widthProperty.SetValue(20.0)
            heightProperty.SetValue(20.0)
        End If

        batchedChange.Complete()
    Finally
        batchedChange.Dispose()
        settingProperties = False
    End Try

End Sub
// The SetHeightAndWidth utility method sets the Height and Width
// properties through the model and commits the change.
private void SetHeightAndWidth(bool autoSize)
{
    settingProperties = true;

    try
    {
    using (ModelEditingScope batchedChange = adornedControlModel.BeginEdit())
    {
        ModelProperty widthProperty =
            adornedControlModel.Properties["Width"];

        ModelProperty heightProperty =
            adornedControlModel.Properties["Height"];

        if (autoSize)
        {
            widthProperty.ClearValue();
            heightProperty.ClearValue();
        }
        else
        {
            widthProperty.SetValue(20d);
            heightProperty.SetValue(20d);
        }

        batchedChange.Complete();
    }
    }
    finally { settingProperties = false; }
}

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.Windows.Design.Model - пространство имен

Другие ресурсы

Пошаговое руководство. Создание графического элемента времени разработки

Расширяемость среды конструктора WPF