Sdílet prostřednictvím


ModelEditingScope-Klasse

Aktualisiert: November 2007

Stellt eine Gruppe der Änderungen am Bearbeitungsspeicher dar.

Namespace:  Microsoft.Windows.Design.Model
Assembly:  Microsoft.Windows.Design.Interaction (in Microsoft.Windows.Design.Interaction.dll)

Syntax

'Declaration
Public MustInherit Class ModelEditingScope _
    Implements IDisposable
'Usage
Dim instance As ModelEditingScope
public abstract class ModelEditingScope : IDisposable
public ref class ModelEditingScope abstract : IDisposable
public abstract class ModelEditingScope implements IDisposable

Hinweise

Änderungsgruppen sind transaktional. In einem Bearbeitungsbereich vorgenommene Änderungen können als Einheit durchgeführt oder übermittelt werden.

Wenn ein Bearbeitungsbereich übermittelt wird, übernimmt der Bearbeitungsspeicher alle darin vorgenommenen Änderungen und wendet diese auf das Modell an. Wenn die Revert-Methode des Bearbeitungsbereichs aufgerufen wird oder der Bearbeitungsbereich vor dem Aufrufen der Complete-Methode gelöscht wird, setzt der Bearbeitungsbereich stattdessen die Änderungen zurück, die an den zugrunde liegenden Objekten vorgenommen wurden, und wendet erneut den Zustand aus dem Bearbeitungsspeicher an. Auf diese Weise erhält der Mechanismus zum Rückgängigmachen eine solide Grundlage.

Umschließen Sie Bearbeitungsbereiche immer mit using-Anweisungen oder try/finally-Blöcken. Wenn eine Ausnahme ausgelöst wird, wird die Änderung im Aufruf an die Dispose-Methode abgebrochen.

Beispiele

' 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; }
}

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

ModelEditingScope-Member

Microsoft.Windows.Design.Model-Namespace

Weitere Ressourcen

Exemplarische Vorgehensweise: Erstellen eines Entwurfszeitadorners

WPF-Designer-Erweiterbarkeit