2010-06-07 16 views

Antwort

8

Das Feld, das Sie als statisch deklarieren ist nur die Kennung eine Abhängigkeitseigenschaft, nicht den Wert der Immobilie. Es wird für alle Instanzen der Klasse freigegeben und wird verwendet, um den Wert der Eigenschaft für jede Instanz abzurufen/festzulegen.

+0

Ich habe einige Anforderungen, die DP als statisch zu machen, weil ich es über alle Instanzen teilen möchte. Ist es möglich? –

+0

@ RV1987, macht es nicht wirklich Sinn ... Wenn Sie das tun möchten, verwenden Sie keine DP, verwenden Sie einfach eine statische CLR-Eigenschaft –

+0

@ThomasLevesque: Ernsthaft kann ich nicht die Bedeutung oder Rechtfertigung Ihrer Aussagen was verstehen du versuchst es zu sagen. Ich bin aber Neuling und verstehe deine Worte nicht. Warum sollten wir für jede Instanz einen Wert festlegen, wenn dieser statisch ist? "Statisch" bedeutet, dass es während der gesamten Programmlaufzeit einmal aufgerufen wird. – Learner

12

Wenn Sie eine DependencyProperty erklären, erklären Sie, die Definition dieser Eigenschaft, anstatt den Speicherplatz für den Wert der Eigenschaft (wie es der Fall mit dem regulären Eigenschaftsdeklaration sein). Es gibt nur eine Definition der Eigenschaft für die gesamte Klasse - im Gegensatz zu einer Definition pro Instanz der Klasse - und daher ist sie statisch.

+0

Wo ist dann Speicher? – zinking

+5

Jedes Objekt mit einer 'DependencyProperty' wird vom Typ' DependencyObject' abgeleitet. Eine Instanz von "DependencyObject" enthält einen Eigenschaftenbeutel - im Wesentlichen ein Wörterbuch des Eigenschaftsnamens, der einem Wert zugeordnet ist - und der Wert einer beliebigen "DependencyProperty", die gesetzt ist, wird in diesem Beutel gespeichert. –

Verwandte Themen