Condividi tramite


Freezable.CloneCurrentValueCore(Freezable) Metodo

Definizione

Rende l'istanza un clone (copia completa) modificabile dell'oggetto Freezable specificato usando i valori di proprietà correnti.

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)

Parametri

sourceFreezable
Freezable

Costruttore Freezable da duplicare.

Commenti

Questo metodo viene chiamato dal CloneCurrentValue metodo e non deve essere chiamato direttamente dal codice, tranne quando si chiama l'implementazione di base durante l'override di questo metodo. Per creare una copia modificabile dell'oggetto corrente, chiamare CloneCurrentValue invece di chiamare direttamente questo metodo.

Note per gli eredi

Se si deriva da Freezable, potrebbe essere necessario eseguire l'override di questo metodo. I motivi per eseguire l'override includono quanto segue:

  • La classe derivata include dati non esposti tramite proprietà di dipendenza.

  • La classe derivata deve eseguire operazioni di inizializzazione aggiuntive che non possono essere eseguite semplicemente eseguendo l'override di CreateInstanceCore(). Si applica, ad esempio, se la classe derivata implementa ISupportInitialize.

Le classi che archiviano tutti i dati nelle proprietà di dipendenza e che non devono eseguire operazioni di inizializzazione aggiuntive non devono eseguire l'override CloneCurrentValueCore(Freezable)di .

È essenziale che tutte le implementazioni chiamino l'implementazione di base di questo metodo. Le implementazioni devono eseguire solo operazioni non eseguite dall'implementazione predefinita. L'implementazione predefinita esegue copie approfondite di tutte le proprietà scrivibili, impostate localmente. Se l'oggetto contiene proprietà di dipendenza con espressioni (ad esempio un data binding), il valore corrente dell'espressione viene copiato ma non l'espressione stessa.

Se l'oggetto ha proprietà di dipendenza animata, il valore animato corrente di tali proprietà viene copiato, ma le animazioni non sono.

Si noti che le proprietà unset non vengono copiate né sono proprietà di sola lettura. Se tale proprietà ha un valore predefinito che è un valore bloccato Freezable, tale valore di proprietà rimane bloccato nel clone modificabile in caso contrario.

Nell'elenco seguente viene riepilogato il comportamento previsto per questo metodo.

  • La copia prodotta contiene copie di tutti gli Freezable oggetti secondari.

  • Le proprietà unset e di sola lettura non vengono copiate.

  • Se una proprietà è animata, il relativo valore corrente viene copiato, ma l'animazione stessa non è.

  • Nessuno di questi oggetti secondari viene bloccato nella creazione.

  • La copia stessa non è bloccata.

Si applica a

Vedi anche