Wann werden Datenbindungen angewendet?

8

Zu welcher Zeit des Objektlebenszyklus werden Bindungen zum ersten Mal aufgelöst?

Es ist eine einfache Frage, aber ich kann weder in Büchern noch über Google Informationen finden.

    
Pavel Voronin 14.12.2012, 09:06
quelle

1 Antwort

7

Es ist nicht so einfach, Sie bekommen keine klare Antwort auf diese Frage. Es hängt vom Kontext ab.

Hier sind zwei einfache Beispiele:

Wenn die beschränkte Eigenschaft einem WPF-Steuerelement gehört, das sich nicht in einer ControlTemplate befindet, wird die Bindung höchstwahrscheinlich zum ersten Mal aufgelöst, wenn UpdateLayout Methode wird zum ersten Mal aufgerufen, wenn der DataContext bereits gesetzt ist. Wenn der DataContext nicht festgelegt wurde, versucht er, aufgelöst zu werden, nachdem das Steuerelement geladen wurde: siehe DataBindEngine.RequestRun () unterhalb von

%Vor%

Wenn die beschränkte Eigenschaft einem WPF-Steuerelement gehört, das sich in einer ControlTemplate befindet, wird es jedoch zum ersten Mal während des ersten Layouting-Durchgangs aufgelöst, der eine ApplyTemplate und führen zur Auflösung der Bindung.

Dies sind nur spezielle Beispiele. Wenn Sie die Bindungsmechanismen vollständig verstehen möchten, sollten Sie reflector verwenden, um sich die Klassen MS.Internal.Data.DataBindEngine und System.Windows.Data.BindindExpression anzusehen. Dies sind die Klassen, die für die Übertragung der korrekten Daten verantwortlich sind, wenn Bindungen für Abhängigkeitseigenschaften verwendet werden.

    
Sisyphe 14.12.2012, 12:57
quelle

Tags und Links