Freezable.CloneCurrentValueCore(Freezable) Metoda

Definicja

Sprawia, że wystąpienie jest modyfikowalnym klonem (głębokiej kopii) określonego Freezable przy użyciu bieżących wartości właściwości.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

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)

Parametry

sourceFreezable
Freezable

Freezable, który ma zostać sklonowany.The Freezable to be cloned.

Uwagi

Ta metoda jest wywoływana przez metodę CloneCurrentValue i nie powinna być wywoływana bezpośrednio z kodu, chyba że podczas wywoływania implementacji podstawowej podczas zastępowania tej metody.This method is called by the CloneCurrentValue method and should not be called directly from your code, except when calling the base implementation while overriding this method. Aby utworzyć modyfikowalną kopię bieżącego obiektu, wywołaj CloneCurrentValue zamiast bezpośrednio wywołać tę metodę.To create a modifiable copy of the current object, call CloneCurrentValue instead of calling this method directly.

Uwagi dotyczące dziedziczenia

Jeśli pochodzą z Freezable, może być konieczne zastąpienie tej metody.If you derive from Freezable, you may need to override this method. Przyczyny zastąpienia obejmują następujące elementy:Reasons to override include the following: -Klasa pochodna ma dane, które nie są udostępniane za pośrednictwem właściwości zależności.- Your derived class has data that is not exposed via dependency properties.

-Klasa pochodna musi wykonywać dodatkowe czynności inicjacji, których nie można osiągnąć przez po prostu zastąpienie CreateInstanceCore().- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Na przykład ma to zastosowanie, jeśli Klasa pochodna implementuje ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

Klasy, w których są przechowywane wszystkie dane we właściwościach zależności, które nie muszą wykonywać dodatkowej pracy inicjującej, nie muszą przesłonić CloneCurrentValueCore(Freezable).Classes that store all their data in dependency properties and that do not need to perform extra initialization work do not need to override CloneCurrentValueCore(Freezable).

Należy koniecznie, aby wszystkie implementacje wywoływały podstawową implementację tej metody.It is essential that all implementations call the base implementation of this method. Implementacje powinny wykonywać wyłącznie zadania, które nie są wykonywane przez implementację domyślną.Implementations should only perform work that is not performed by the default implementation. Implementacja domyślna tworzy głębokie kopie wszystkich zapisywalnych, lokalnie ustawionych właściwości.The default implementation makes deep copies of all writable, locally set properties. Jeśli obiekt zawiera właściwości zależności z wyrażeniami (takimi jak powiązanie danych), bieżąca wartość wyrażenia jest kopiowana, ale nie sama wyrażenie.If the object contains dependency properties with expressions (such as a data binding), the current value of the expression is copied but not the expression itself.

Jeśli obiekt ma animowane właściwości zależności, bieżąca animowana wartość tych właściwości jest kopiowana, ale animacje nie są.If the object has animated dependency properties, the current animated value of those properties is copied, but the animations are not.

Należy zauważyć, że właściwości nie są kopiowane, ani nie są właściwościami tylko do odczytu.Note that unset properties are not copied, nor are read-only properties. Jeśli taka właściwość ma wartość domyślną zamrożoną Freezable, wartość tej właściwości pozostaje zamrożona w niemodyfikowalnym klonie.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

Poniższa lista zawiera podsumowanie oczekiwanego zachowania tej metody.The following list summarizes the expected behavior for this method.

-Utworzona kopia zawiera kopie wszystkich Freezable podrzędnych obiektów.- The copy produced contains copies of all Freezable sub-objects.

Nie są kopiowane właściwości-unonly i tylko do odczytu.- Unset and read-only properties are not copied.

— Jeśli właściwość jest animowana, jej bieżąca wartość jest kopiowana, ale sama animacja nie jest.- If a property is animated, its current value is copied, but the animation itself is not.

-Żadne z tych obiektów podrzędnych nie są zamrożone podczas tworzenia.- None of these sub-objects are frozen on creation.

-Sama kopia nie jest zamrożona.- The copy itself is not frozen.

Dotyczy

Zobacz też