Classe ModelEditingScope

Rappresenta un gruppo di modifiche nell'archivio di modifica.

Gerarchia di ereditarietà

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

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

Sintassi

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

Il tipo ModelEditingScope espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto ModelEditingScope Inizializza una nuova istanza della classe ModelEditingScope.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica Description Ottiene o imposta la descrizione del gruppo.

In alto

Metodi

  Nome Descrizione
Metodo protetto CanComplete Determina se il metodo OnComplete può essere chiamato o se la modifica deve essere ripristinata.
Metodo pubblico Complete Completa l'ambito di modifica.
Metodo pubblico Dispose() Rilascia tutte le risorse utilizzate dall'oggetto ModelEditingScope.
Metodo protetto Dispose(Boolean) Rilascia le risorse non gestite utilizzate dalla classe ModelEditingScope e facoltativamente le risorse gestite.
Metodo pubblico Equals Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Oggetto chiamato durante la finalizzazione per interrompere il gruppo. (Esegue l'override di Object.Finalize()).
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto OnComplete Esegue il completamento effettivo dell'ambito di modifica.
Metodo protetto OnRevert Esegue il ripristino effettivo dell'ambito di modifica.
Metodo pubblico Revert Annulla le modifiche apportate durante l'ambito di modifica.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblico Update Esegue un aggiornamento sincrono della visualizzazione.

In alto

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 in istruzioni using o 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("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; }
}

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

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