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 anziché chiamare CloneCurrentValue 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 contiene 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(). Ad esempio, questo vale 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 crea copie complete di tutte le proprietà scrivibili e 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 animate, il valore animato corrente di tali proprietà viene copiato, ma le animazioni non sono.

Si noti che le proprietà nonset non vengono copiate, né sono proprietà di sola lettura. Se tale proprietà ha un valore predefinito che è bloccato Freezable, tale valore della 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à nonset e di sola lettura non vengono copiate.

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

  • Nessuno di questi oggetti secondari viene bloccato durante la creazione.

  • La copia stessa non è bloccata.

Si applica a

Vedi anche