获取绑定属性的类型

时间:2018-02-15 12:38:19

标签: c# wpf xaml binding

这个问题在SO上被问过几次(比如herehere),但这些是一些较旧的问题,没有使用反射就没有答案。所以,我只想再次询问它是否有变化,以及我们现在是否有东西可以访问它。它可能与绑定的核心功能有关,阻止微软实现它,但我想试一试。

我应该能够在TextBox控制范围内进行此操作。我得到这样的绑定:

Binding bind = GetBindingExpression(TextProperty)?.ParentBinding;

但是没有看到任何可以帮助我获取源属性类型的内容。

1 个答案:

答案 0 :(得分:0)

没有任何改变。您可以使用绑定的Source属性或DataContext的{​​{1}}来获取对的引用:

TextBox

但是要获取要绑定的属性的类型,必须使用反射:

Type sourceType = bind.Source?.GetType();
if (sourceType == null)
    sourceType = DataContext?.GetType();

WPF(仍)使用反射来解析属性值。