Compartir a través de


Freezable.CloneCore(Freezable) Método

Definición

Convierte la instancia en un clon (copia en profundidad) de la clase Freezable especificada con valores de propiedad base (no animadas).

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

Parámetros

sourceFreezable
Freezable

Objeto que se va a clonar.

Comentarios

El método llama Clone a este método y no se debe llamar directamente desde el código, excepto cuando se llama a la implementación base mientras se reemplaza este método. Para crear una copia modificable del objeto actual, llame a Clone en lugar de llamar directamente a este método.

Notas a los desarrolladores de herederos

Si deriva de Freezable, es posible que tenga que invalidar este método. Entre los motivos para invalidar se incluyen los siguientes:

  • La clase derivada tiene datos que no se exponen a través de propiedades de dependencia.

  • La clase derivada debe realizar un trabajo de inicialización adicional que no se puede realizar simplemente invalidando CreateInstanceCore(). Por ejemplo, esto se aplica si la clase derivada implementa ISupportInitialize.

Las clases que almacenan todos sus datos en las propiedades de dependencia y que no necesitan realizar un trabajo de inicialización adicional no necesitan invalidar CloneCore(Freezable).

Es esencial que todas las implementaciones llamen a la implementación base de este método. Las implementaciones solo deben realizar trabajos que no se realicen mediante la implementación predeterminada. La implementación predeterminada realiza copias profundas de todas las propiedades grabables y establecidas localmente, incluidas las expresiones internas.

Si el objeto tiene propiedades de dependencia enlazadas a datos, las expresiones se copian, pero es posible que ya no se resuelvan. Para obtener más información sobre la clonación de objetos enlazados a datos, vea Información general sobre objetos freezable. Si el objeto tiene propiedades de dependencia animadas, se copia el valor base (no animado) de esas propiedades. Las animaciones no se copian.

Tenga en cuenta que las propiedades sin establecer no se copian ni son propiedades de solo lectura. Si dicha propiedad tiene un valor predeterminado que es un inmovilizado Freezable, ese valor de propiedad permanece inmovilizado en el clon modificable de otro modo.

En la lista siguiente se resume el comportamiento esperado para este método:

  • La copia generada contiene copias de todos los Freezable sub-objetos.

  • Las propiedades de solo lectura y no se copian.

  • Las expresiones se copian.

  • Ninguno de estos sub-objetos se inmoviliza al crearse.

  • La propia copia no está inmovilizada.

  • Las animaciones no se copian.

  • Solo se copian los valores base de propiedad, no los valores animados actuales.

Se aplica a

Consulte también