Freezable.CloneCurrentValueCore(Freezable) Método

Definição

Torna a instância um clone modificável (cópia profunda) do especificado Freezable usando valores atuais de propriedades.

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

A Freezable clonar.

Observações

Este método é chamado pelo CloneCurrentValue método e não deve ser chamado diretamente do seu código, exceto quando se chama a implementação base enquanto se sobrepõe este método. Para criar uma cópia modificável do objeto atual, chame CloneCurrentValue este método em vez de chamar diretamente.

Notas para Herdeiros

Se derivar de Freezable, pode ser necessário sobrepor este método. As razões para anular incluem as seguintes:

  • A sua classe derivada tem dados que não são expostos através de propriedades de dependência.

  • A sua classe derivada deve realizar trabalho extra de inicialização que não pode ser realizado simplesmente sobrescrevendo CreateInstanceCore(). Por exemplo, isto aplica-se se a sua classe derivada implementar ISupportInitialize.

Classes que armazenam todos os seus dados em propriedades de dependência e que não precisam de realizar trabalho extra de inicialização não precisam de sobrescrever CloneCurrentValueCore(Freezable).

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

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

Note que as propriedades não definidas não são copiadas, nem as propriedades de apenas leitura. Se tal propriedade tiver um valor padrão que seja um congelado Freezable, esse valor permanece congelado no clone que de outra forma poderia ser modificado.

A lista seguinte resume o comportamento esperado para este método.

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

  • As propriedades de não definir e só leitura não são copiadas.

  • Se uma propriedade for animada, o seu valor atual é copiado, mas a própria animação não é.

  • Nenhum destes sub-objetos está congelado na criação.

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

Aplica-se a

Ver também