다음을 통해 공유


ModelEditingScope 클래스

업데이트: 2007년 11월

편집 저장소에 대한 변경 그룹을 나타냅니다.

네임스페이스:  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(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

참고 항목

참조

ModelEditingScope 멤버

Microsoft.Windows.Design.Model 네임스페이스

기타 리소스

연습: 디자인 타임 표시기 만들기

WPF Designer 확장성