Udostępnij za pośrednictwem


Freezable.CloneCore(Freezable) Metoda

Definicja

Sprawia, że wystąpienie jest klonem (kopia głęboka) określonego Freezable obiektu przy użyciu wartości właściwości base (nieimowane).

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)

Parametry

sourceFreezable
Freezable

Obiekt do sklonowania.

Uwagi

Ta metoda jest wywoływana przez metodę Clone i nie powinna być wywoływana bezpośrednio z kodu, z wyjątkiem wywoływania implementacji podstawowej podczas zastępowania tej metody. Aby utworzyć modyfikowalną kopię bieżącego obiektu, wywołaj Clone metodę zamiast bezpośrednio wywołać tę metodę.

Uwagi dotyczące dziedziczenia

Jeśli pochodzisz z Freezableklasy , może być konieczne zastąpienie tej metody. Przyczyny zastąpienia obejmują następujące kwestie: — Klasa pochodna zawiera dane, które nie są uwidaczniane za pośrednictwem właściwości zależności.

  • Klasa pochodna musi wykonać dodatkową pracę inicjalizacyjną, której nie można wykonać, po prostu przesłaniając CreateInstanceCore()element . Dotyczy to na przykład, jeśli klasa pochodna implementuje ISupportInitializewartość .

Klasy, które przechowują wszystkie swoje dane we właściwościach zależności i które nie muszą wykonywać dodatkowych zadań inicjowania, nie muszą zastępować CloneCore(Freezable)elementu .

Ważne jest, aby wszystkie implementacje wywoływać podstawową implementację tej metody. Implementacje powinny wykonywać tylko zadania, które nie są wykonywane przez domyślną implementację. Domyślna implementacja sprawia, że głębokie kopie wszystkich zapisywalnych, lokalnie ustawionych właściwości, w tym wyrażeń wewnętrznych.

Jeśli obiekt ma właściwości zależności powiązane z danymi, wyrażenia są kopiowane, ale mogą już nie zostać rozwiązane. Aby uzyskać więcej informacji na temat klonowania obiektów powiązanych z danymi, zobacz Omówienie obiektów z możliwością zamrażania. Jeśli obiekt ma animowane właściwości zależności, zostanie skopiowana wartość podstawowa (nieimowana) tych właściwości. Animacje nie są kopiowane.

Należy pamiętać, że nieskonfigurowane właściwości nie są kopiowane ani nie są właściwościami tylko do odczytu. Jeśli taka właściwość ma wartość domyślną, która jest zamrożona , ta wartość właściwości pozostaje zamrożona Freezablew klonie modyfikowalnym w przeciwnym razie.

Poniższa lista zawiera podsumowanie oczekiwanego zachowania dla tej metody: — Utworzona kopia zawiera kopie wszystkich Freezable obiektów podrzędnych.

  • Nieskonfigurowane i właściwości tylko do odczytu nie są kopiowane.

— Wyrażenia są kopiowane.

— Żaden z tych obiektów podrzędnych nie jest zamrożony podczas tworzenia.

  • Sama kopia nie jest zamrożona.

  • Animacje nie są kopiowane.

— Kopiowane są tylko wartości podstawowe właściwości, a nie bieżące animowane wartości.

Dotyczy

Zobacz też