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
Microsoft.Windows.Design.Model-Namespace
Weitere Ressourcen
Exemplarische Vorgehensweise: Erstellen eines Entwurfszeitadorners