ModelEditingScope, classe

Mise à jour : novembre 2007

Représente un groupe de modifications apportées au magasin d'éditions.

Espace de noms :  Microsoft.Windows.Design.Model
Assembly :  Microsoft.Windows.Design.Interaction (dans Microsoft.Windows.Design.Interaction.dll)

Syntaxe

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

Notes

Les groupes de modifications sont transactionnels. Les modifications apportées dans une portée d'édition peuvent être validées ou abandonnées en tant qu'unité.

Lorsqu'une portée d'édition est validée, le magasin d'éditions prend toutes les modifications qui s'y sont produites et les applique au modèle. Si la méthode Revert de la portée d'édition est appelée ou si la portée d'édition est supprimée avant l'appel de la méthode Complete, la portée d'édition rétablit les modifications apportées aux objets sous-jacents, en réappliquant l'état issu du magasin d'éditions. Cela constitue une base fiable pour un mécanisme d'annulation.

Encapsulez toujours les portées d'édition dans des instructions using ou dans des blocs try/finally. Si une exception est levée, la modification est abandonnée dans l'appel de la méthode Dispose.

Exemples

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

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres ModelEditingScope

Microsoft.Windows.Design.Model, espace de noms

Autres ressources

Procédure pas à pas : création d'un ornement au moment du design

Extensibilité du concepteur WPF