Partilhar via


Classe ModelEditingScope

Representa um grupo de alterações no armazenamento de edição.

Hierarquia de herança

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

Namespace:  Microsoft.Windows.Design.Model
Assembly:  Microsoft.Windows.Design.Interaction (em Microsoft.Windows.Design.Interaction.dll)

Sintaxe

'Declaração
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

O tipo ModelEditingScope expõe os membros a seguir.

Construtores

  Nome Descrição
Método protegido ModelEditingScope Initializes a new instance of the ModelEditingScope class.

Início

Propriedades

  Nome Descrição
Propriedade pública Description Obtém ou define uma descrição para o grupo.

Início

Métodos

  Nome Descrição
Método protegido CanComplete Determina se a OnComplete método pode ser chamado ou se a alteração deve ser revertida em vez disso.
Método público Complete Conclui o escopo de edição.
Método público Dispose() Libera todos os recursos usados pela ModelEditingScope.
Método protegido Dispose(Boolean) Libera os recursos não gerenciados usados pela ModelEditingScope classe e, opcionalmente, versões de recursos gerenciados.
Método público Equals Determina se o especificado Object é igual a atual Object. (Herdado de Object.)
Método protegido Finalize Chamado durante a finalização de anular o grupo. (Substitui Object.Finalize().)
Método público GetHashCode Serves as a hash function for a particular type. (Herdado de Object.)
Método público GetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método protegido OnComplete Executa o real completa do escopo de edição.
Método protegido OnRevert Executa a reversão real do escopo de edição.
Método público Revert Desfaz às mudanças feitas durante o escopo de edição.
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)
Método público Update Executa uma atualização síncrona do modo de exibição.

Início

Comentários

Os grupos de alteração são transacionais. As alterações feitas em um escopo de edição podem ser confirmadas ou anuladas como uma unidade.

Quando um escopo de edição for confirmado, o armazenamento de edição leva todas as alterações que ocorreram nele e aplica-se ao modelo. Se o escopo de edição Revert é chamado de método ou o escopo de edição é descartado antes de Complete método é chamado, o escopo de edição em vez disso, irá reverter as alterações que foram feitas nos objetos subjacentes, reaplicando o estado do armazenamento de edição. Isso fornece uma base sólida para o mecanismo de desfazer.

Always wrap editing scopes in using statements or try/finally blocks. Se uma exceção é gerada, a alteração é anulada na chamada para o Dispose método.

Exemplos

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

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.Windows.Design.Model

Outros recursos

Walkthrough: Criando um adorno em tempo de design

Extensibilidade do WPF Designer