Freezable.GetCurrentValueAsFrozenCore(Freezable) Método

Definición

Convierte la instancia actual en un clon inmovilizado del valor de Freezable especificado. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales.

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

Parámetros

sourceFreezable
Freezable

Clase Freezable que se va a copiar e inmovilizar.

Comentarios

El método llama GetCurrentValueAsFrozen 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 inmovilizada del objeto actual, llame a GetCurrentValueAsFrozen 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 GetCurrentValueAsFrozenCore(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 crea un nuevo Freezable uso del CreateInstance() método y realiza copias profundas de freezables infrozen y copias superficiales de todas las demás propiedades grabables y establecidas localmente que contiene. Si el objeto tiene propiedades de dependencia enlazadas a datos, los enlaces de datos 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 animado actual de esas propiedades, pero las animaciones no.

Esta implementación predeterminada no copia las propiedades de dependencia de solo lectura dentro de .Freezable

Si invalida este método, debe llamar a la implementación base.

No es necesario que los Freeze() valores se copien. El resultado se inmoviliza GetAsFrozen() antes de devolverse.

Se aplica a

Consulte también