2012-08-20 14 views
6

Das folgende gibt NULL für mich zurück, irgendeine Idee warum?TextBlock.GetBindingExpression gibt NULL zurück

MultiBinding collectionRange = new MultiBinding(); 
collectionRange.Bindings.Add(new Binding("CurrentPosition") { Source = View }); 
collectionRange.Bindings.Add(new Binding("Count") { Source = View }); 
collectionRange.StringFormat = "{0} of {1}"; 
tbFooter.SetBinding(TextBlock.TextProperty, collectionRange); 
var x = tbFooter.GetBindingExpression(TextBlock.TextProperty); 

Das Multibinding ist in Ordnung - die Eigenschaften gültig sind und es macht auf dem UI-..ich kann nicht scheinen, um die Bindung Ausdruck zu greifen (x ist immer NULL)

Bin ich mit dieser Methode falsch?

Antwort

15

Diese Methode ist wirklich nur ein Convenience-Wrapper um die BindingOperations.GetBindingExpression-Methode. GetBindingExpression übergibt die aktuelle Instanz und den Parameter dp an BindingOperations.GetBindingExpression.

Wenn Ihre Bindung eine MultiBinding ist, verwenden Sie BindingOperations.GetMultiBinding.

Siehe Abschnitt "Hinweise" und Hinweise im Abschnitt "Beispiele", Abschnitt here.