Classe ModelEditingScope

Aggiornamento: novembre 2007

Rappresenta un gruppo di modifiche nell'archivio di modifica.

Spazio dei nomi:  Microsoft.Windows.Design.Model
Assembly:  Microsoft.Windows.Design.Interaction (in Microsoft.Windows.Design.Interaction.dll)

Sintassi

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

Note

I gruppi di modifiche sono transazionali. È possibile eseguire il commit delle modifiche apportate in un ambito di modifica oppure interromperle come unità.

Quando si esegue il commit di un ambito di modifica, l'archivio di modifica accetta tutte le modifiche apportate e le applica al modello. Invece, se viene chiamato il metodo Revert dell'ambito di modifica o se questo viene eliminato prima di chiamare il metodo Complete, l'ambito di modifica inverte le modifiche apportate agli oggetti sottostanti tramite una nuova applicazione dello stato dall'archivio di modifica. In questo modo, viene fornita una base solida per un meccanismo di annullamento.

Eseguire sempre il wrapping degli ambiti di modifica nelle istruzioni using o nei blocchi try/finally. Se viene generata un'eccezione, la modifica viene interrotta nella chiamata al metodo Dispose.

Esempi

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

Gerarchia di ereditarietà

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

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Membri ModelEditingScope

Spazio dei nomi Microsoft.Windows.Design.Model

Altre risorse

Procedura dettagliata: creazione di uno strumento decorativo visuale in fase di progettazione

Estensibilità di Progettazione WPF