Freezable.CloneCurrentValueCore(Freezable) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří instanci modifikovatelný klon (hloubkovou kopii) zadaného Freezable pomocí aktuálních hodnot vlastností.
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
Poznámky
Tato metoda je volána metodou CloneCurrentValue a neměla by být volána přímo z vašeho kódu, s výjimkou volání základní implementace při přepsání této metody. Chcete-li vytvořit upravitelnou kopii aktuálního objektu, volejte CloneCurrentValue místo přímého volání této metody.
Poznámky pro dědice
Pokud pocházíte z Freezable, možná budete muset tuto metodu přepsat. Mezi důvody přepsání patří:
Vaše odvozená třída obsahuje data, která nejsou vystavena prostřednictvím vlastností závislostí.
Odvozená třída musí provádět extra inicializační práci, kterou nelze provést jednoduše přepsáním CreateInstanceCore(). To platí například v případě, že vaše odvozená třída implementuje ISupportInitialize.
Třídy, které ukládají všechna svá data do vlastností závislostí a které nepotřebují provádět další inicializační práci, nemusí přepsat CloneCurrentValueCore(Freezable).
Je nezbytné, aby všechny implementace volali základní implementaci této metody. Implementace by měly provádět pouze práci, která není provedena ve výchozí implementaci. Výchozí implementace vytváří hluboké kopie všech zapisovatelných a místně nastavených vlastností. Pokud objekt obsahuje vlastnosti závislostí s výrazy (například datovou vazbou), aktuální hodnota výrazu se zkopíruje, ale ne samotný výraz.
Pokud má objekt animované vlastnosti závislostí, aktuální animovaná hodnota těchto vlastností se zkopíruje, ale animace nejsou.
Všimněte si, že nekopírované vlastnosti nejsou zkopírovány ani vlastnosti jen pro čtení. Pokud má taková vlastnost výchozí hodnotu, která je zmrazená Freezable, tato hodnota vlastnosti zůstane zmrazena v jinak upravitelné klonu.
Následující seznam shrnuje očekávané chování pro tuto metodu.
- Kopie vytvořená obsahuje kopie všech Freezable dílčích objektů.
– Nekopírované vlastnosti a vlastnosti jen pro čtení se nekopírují.
Pokud je vlastnost animovaný, její aktuální hodnota se zkopíruje, ale animace sama není.
Při vytváření nejsou zablokované žádné z těchto dílčích objektů.
Samotná kopie není zmrazená.