Freezable.CloneCurrentValueCore(Freezable) Método

Definición

Convierte la instancia en un clon modificable (copia profunda) del especificado Freezable 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

que Freezable 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 reemplaza este método. Para crear una copia modificable del objeto actual, llame a CloneCurrentValue 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 pueda 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 trabajos de inicialización adicionales 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 el trabajo que no se realiza mediante la implementación predeterminada. La implementación predeterminada realiza copias profundas 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.

  • No se copian las propiedades de solo lectura y de conjunto.

  • 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 en la creación.

  • La propia copia no está inmovilizada.

Se aplica a

Consulte también