/ C# WPF Binding Reflection

WPF: Typ des gebundenen Properties herausfinden

Will man in einem WPF-Control den Typ des gebundenen Property herausfinden, gibt es erst mal einen ganz einfachen Weg. Im Code Behind gibt es aber die Möglichkeit, auf die BindingExpressions zuzugreifen. Hilfreich ist hier die BindingOperations-Klasse

var bindingex = BindingOperations.GetBindingExpression(this, SelectedItemProperty);

Ebendort ist es möglich, den Pfad herauszukitzeln.[1]

var path = bindingex.ParentBinding.Path.Path;

Um auf den Typ des gebunden Property zu kommen, ist jetzt allerdings noch etwas Reflection erforderlich. Dazu muss allerdings der DataContext bereits verfügbar sein, als Hook bietet sich hier etwa OnApplyTemplate() an. Von diesem Objekt kann dann der Typ geholt werden, davon das Property, davon der PropertyType.

var property = DataContext.GetType().GetProperty(path).PropertyType;

  1. http://stackoverflow.com/questions/2767557/wpf-get-property-that-a-control-is-bound-to-in-code-behind ↩︎