Поделиться через


ModelEditingScope - класс

Обновлен: Ноябрь 2007

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

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

Синтаксис

'Декларация
Public MustInherit Class ModelEditingScope _
    Implements IDisposable
'Применение
Dim instance As ModelEditingScope
public abstract class ModelEditingScope : IDisposable
public ref class ModelEditingScope abstract : IDisposable
public abstract class ModelEditingScope implements IDisposable

Заметки

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

При сохранении области редактирования все изменения сохраняются в хранилище редактирования и применяются к модели. При вызове метода 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(Control.WidthProperty)

        Dim heightProperty As ModelProperty = adornedControlModel.Properties(Control.HeightProperty)

        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[Control.WidthProperty];

        ModelProperty heightProperty =
            adornedControlModel.Properties[Control.HeightProperty];

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

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

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

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

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

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

См. также

Ссылки

ModelEditingScope - члены

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

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

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

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