Freigeben über


ModelEditingScope-Klasse

Stellt eine Gruppe der Änderungen am Bearbeitungsspeicher dar.

Vererbungshierarchie

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

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

Syntax

'Declaration
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

Der ModelEditingScope-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Geschützte Methode ModelEditingScope Initialisiert eine neue Instanz der ModelEditingScope-Klasse.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Description Ruft eine Beschreibung für die Gruppe ab oder legt sie fest.

Zum Seitenanfang

Methoden

  Name Beschreibung
Geschützte Methode CanComplete Legt fest, ob die OnComplete-Methode aufgerufen werden kann oder ob die Änderung stattdessen rückgängig gemacht werden soll.
Öffentliche Methode Complete Schließt den Bearbeitungsbereich ab.
Öffentliche Methode Dispose() Gibt alle vom ModelEditingScope verwendeten Ressourcen frei.
Geschützte Methode Dispose(Boolean) Gibt die von der ModelEditingScope-Klasse verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei.
Öffentliche Methode Equals Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Wird beim Abschließen aufgerufen, um die Gruppe abzubrechen. (Überschreibt Object.Finalize().)
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte Methode OnComplete Führt die tatsächlichen Schritte zum Abschließen des Bearbeitungsbereichs durch.
Geschützte Methode OnRevert Führt die tatsächlichen Schritte zum Wiederherstellen des Bearbeitungsbereichs durch.
Öffentliche Methode Revert Bricht die Änderungen ab, die im Bearbeitungsbereich vorgenommen wurden.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode Update Führt eine synchrone Aktualisierung der Ansicht aus.

Zum Seitenanfang

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öcke. 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("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; }
}

Threadsicherheit

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

Siehe auch

Referenz

Microsoft.Windows.Design.Model-Namespace

Weitere Ressourcen

Exemplarische Vorgehensweise: Erstellen eines Entwurfszeitadorners

WPF-Designer-Erweiterbarkeit