Compartilhar via


Freezable.CloneCurrentValueCore(Freezable) Método

Definição

Torna a instância um clone modificável (cópia em profundidade) do Freezable especificado usando os valores de propriedade atuais.

protected:
 virtual void CloneCurrentValueCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCurrentValueCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCurrentValueCore : System.Windows.Freezable -> unit
override this.CloneCurrentValueCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCurrentValueCore (sourceFreezable As Freezable)

Parâmetros

sourceFreezable
Freezable

Os Freezable a serem clonados.

Comentários

Esse método é chamado pelo CloneCurrentValue método e não deve ser chamado diretamente do código, exceto ao chamar a implementação base durante a substituição desse método. Para criar uma cópia modificável do objeto atual, chame CloneCurrentValue em vez de chamar esse método diretamente.

Notas aos Herdeiros

Se você derivar de Freezable, talvez seja necessário substituir esse método. Os motivos para substituir incluem o seguinte:

  • Sua classe derivada tem dados que não são expostos por meio de propriedades de dependência.

  • Sua classe derivada deve executar um trabalho de inicialização extra que não pode ser realizado simplesmente substituindo CreateInstanceCore(). Por exemplo, isso se aplica se sua classe derivada implementa ISupportInitialize.

Classes que armazenam todos os dados em propriedades de dependência e que não precisam executar trabalhos de inicialização extras não precisam substituir CloneCurrentValueCore(Freezable).

É essencial que todas as implementações chamem a implementação base desse método. As implementações só devem executar trabalhos que não são executados pela implementação padrão. A implementação padrão faz cópias profundas de todas as propriedades graváveis e definidas localmente. Se o objeto contiver propriedades de dependência com expressões (como uma associação de dados), o valor atual da expressão será copiado, mas não a expressão em si.

Se o objeto tiver propriedades de dependência animadas, o valor animado atual dessas propriedades será copiado, mas as animações não serão.

Observe que as propriedades não definidos não são copiadas nem as propriedades somente leitura. Se essa propriedade tiver um valor padrão congelado Freezable, esse valor de propriedade permanecerá congelado no clone modificável de outra forma.

A lista a seguir resume o comportamento esperado para esse método.

  • A cópia produzida contém cópias de todos os Freezable sub-objetos.

  • As propriedades unset e read-only não são copiadas.

  • Se uma propriedade for animada, seu valor atual será copiado, mas a animação em si não será.

  • Nenhum desses subpropósimos é congelado na criação.

  • A cópia em si não está congelada.

Aplica-se a

Confira também