Freezable.CloneCurrentValueCore(Freezable) Método

Definición

Convierte esta instancia en un clon modificable (copia en profundidad) del Freezable especificado mediante los valores de propiedad actuales.

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

Freezable que se va a clonar.

Comentarios

El método llama a CloneCurrentValue este método y no se debe llamar directamente desde el código, excepto cuando se llama a la implementación base mientras se invalida este método. Para crear una copia modificable del objeto actual, llame CloneCurrentValue a 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 lograr 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 CloneCurrentValueCore(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 en profundidad de todas las propiedades grabables y establecidas localmente. Si el objeto contiene propiedades de dependencia con expresiones (como un enlace de datos), el valor actual de la expresión se copia, pero no la propia expresión.

Si el objeto tiene propiedades de dependencia animadas, se copia el valor animado actual de esas propiedades, pero las animaciones no.

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 lo contrario.

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 sin establecer y de solo lectura no se copian.

  • Si se anima una propiedad, se copia su valor actual, pero la propia animación no lo es.

  • Ninguno de estos sub-objetos se inmoviliza durante la creación.

  • La copia en sí no está inmovilizada.

Se aplica a

Consulte también