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 | |
---|---|---|
ModelEditingScope | Inizializza una nuova istanza della classe ModelEditingScope. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
Description | Ottiene o imposta la descrizione del gruppo. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
CanComplete | Determina se il metodo OnComplete può essere chiamato o se la modifica deve essere ripristinata. | |
Complete | Completa l'ambito di modifica. | |
Dispose() | Rilascia tutte le risorse utilizzate dall'oggetto ModelEditingScope. | |
Dispose(Boolean) | Rilascia le risorse non gestite utilizzate dalla classe ModelEditingScope e facoltativamente le risorse gestite. | |
Equals | Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object) | |
Finalize | Oggetto chiamato durante la finalizzazione per interrompere il gruppo. (Esegue l'override di Object.Finalize()). | |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) | |
OnComplete | Esegue il completamento effettivo dell'ambito di modifica. | |
OnRevert | Esegue il ripristino effettivo dell'ambito di modifica. | |
Revert | Annulla le modifiche apportate durante l'ambito di modifica. | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) | |
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