2010-06-07 20 views

risposta

8

Il campo si dichiara come statica è solo l'identificatore di una proprietà di dipendenza, non il valore della proprietà . È condiviso tra tutte le istanze della classe e viene utilizzato per ottenere/impostare il valore della proprietà per ogni istanza.

+0

Ho alcuni requisiti per rendere il DP come statico perché voglio condividerlo tra tutte le istanze. È possibile? –

+0

@ RV1987, non ha proprio senso ... se vuoi farlo, non usare un DP, usa solo una proprietà CLR statica –

+0

@ThomasLevesque: Seriamente non riesco a capire il significato o la giustificazione delle tue affermazioni stai cercando di dire. Sono novizio e non capisco le tue parole. Perché dovremmo impostare un valore per ogni istanza se è statica. Statico significa la sua unica volta invocazione per tutta la vita del programma giusto. – Learner

12

Quando si dichiara una DependencyProperty, si dichiara la definizione di quella proprietà, piuttosto che lo spazio di archiviazione per il valore della proprietà (come sarebbe il caso con la dichiarazione di proprietà regolare). Esiste solo una definizione della proprietà per l'intera classe - al contrario di una definizione per istanza della classe - e quindi è statica.

+0

dove si trova allora lo spazio di archiviazione? – zinking

+5

Qualsiasi oggetto con 'DependencyProperty' deriva dal tipo' DependencyObject'. Un'istanza di 'DependencyObject' include un sacchetto di proprietà - essenzialmente un dizionario di nome di proprietà mappato sul valore - e il valore di qualsiasi' DependencyProperty' impostato viene memorizzato in quel sacchetto. –

Problemi correlati