Freezable.CloneCurrentValueCore(Freezable) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Sprawia, że wystąpienie jest modyfikowalny klon (kopia głęboka) określonego Freezable przy użyciu bieżących wartości właściwości.
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
Uwagi
Ta metoda jest wywoływana przez metodę CloneCurrentValue i nie powinna być wywoływana bezpośrednio z kodu, z wyjątkiem wywołania implementacji podstawowej podczas zastępowania tej metody. Aby utworzyć modyfikowalną kopię bieżącego obiektu, wywołaj metodę CloneCurrentValue zamiast bezpośrednio wywołać tę metodę.
Uwagi dotyczące dziedziczenia
Jeśli pochodzisz z Freezablemetody , może być konieczne zastąpienie tej metody. Przyczyny zastąpienia obejmują następujące kwestie: — Klasa pochodna zawiera dane, które nie są widoczne za pośrednictwem właściwości zależności.
- Klasa pochodna musi wykonać dodatkową pracę inicjowania, której nie można wykonać, po prostu przesłaniając CreateInstanceCore()element . Dotyczy to na przykład, jeśli klasa pochodna implementuje metodę ISupportInitialize.
Klasy przechowujące wszystkie swoje dane we właściwościach zależności i które nie muszą wykonywać dodatkowych zadań inicjowania CloneCurrentValueCore(Freezable), nie muszą zastępować elementu .
Ważne jest, aby wszystkie implementacje wywoływać podstawową implementację tej metody. Implementacje powinny wykonywać tylko pracę, która nie jest wykonywana przez domyślną implementację. Domyślna implementacja sprawia, że głębokie kopie wszystkich zapisywalnych, lokalnie ustawionych właściwości. 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.
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ą.
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 Freezable, ta wartość właściwości pozostaje zamrożona w innym klonie modyfikowalnym.
Poniższa lista zawiera podsumowanie oczekiwanego zachowania dla tej metody.
- Utworzona kopia zawiera kopie wszystkich Freezable obiektów podrzędnych.
— Właściwości niezsetowane i tylko do odczytu nie są kopiowane.
- Jeśli właściwość jest animowana, jego bieżąca wartość jest kopiowana, ale sama animacja nie jest.
— Żadne z tych obiektów podrzędnych nie są zamrożone podczas tworzenia.
- Sama kopia nie jest zamrożona.