2016-04-28 11 views
0

Ich habe etwas über Dependency Properties geforscht und bin zu einer kleinen Verwirrung gekommen. Wie bestimmt die Laufzeit, zu welchem ​​Objekt die DependencyProperty gehört?C# DependencyProperty - Wie wird eine Eigenschaft einem Objekt zugeordnet?

Stellen Sie sich eine Sammlung von Objekten (des gleichen Typs) vor, die alle die gleiche DependencyProperty registrieren. Die Eigenschaft wird an eine TextBox gebunden und die TexBoxen werden untereinander angezeigt.

Erstens: ist jede TextBox an eine andere DependencyProperty gebunden? Ich denke schon, aber ich bin nicht 100% sicher. Zweitens: Wenn ja, wie bestimmt die Laufzeitumgebung das Objekt, dem DependencyProperty zugeordnet werden soll. Beim Registrieren einer DependencyProperty gebe ich nur den Objekttyp an, im Beispiel MyClockControl. Da es keine solide Möglichkeit gibt, die aufrufende Instanz von einer aufgerufenen Methode abzurufen, bekomme ich einfach nicht heraus, wie das Objekt aufgelöst wird, das die Eigenschaft "enthält", und das korrekte von mehreren Eigenschaften wird zurückgegeben, wenn auf die Abhängigkeitseigenschaft zugegriffen wird.

Beispiel von http://www.wpftutorial.net/dependencyproperties.html

// Dependency Property 
public static readonly DependencyProperty CurrentTimeProperty = 
    DependencyProperty.Register("CurrentTime", typeof(DateTime), 
    typeof(MyClockControl), new FrameworkPropertyMetadata(DateTime.Now)); 

// .NET Property wrapper 
public DateTime CurrentTime 
{ 
    get { return (DateTime)GetValue(CurrentTimeProperty); } 
    set { SetValue(CurrentTimeProperty, value); } 
} 

Vielen Dank für alle Antworten.

Antwort

1

Die GetValue und SetValue Methoden (ein DependencyObject) erhalten und den Wert in einem Wörterbuch gesetzt (gut ... Art), erklärten am DependencyObject, die Abhängigkeitseigenschaft die Schlüssel zu sein. Das bedeutet, dass der Wert, der dem DependencyProperty entspricht, für die Instanz der DependencyObject spezifisch ist.

Verwandte Themen