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) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
참고 항목
참조
Microsoft.Windows.Design.Model 네임스페이스