我有一个未知来源的绑定(bind)。我所拥有的只是绑定(bind)。我没有其他方式查看绑定(bind)对象。我需要找出绑定(bind)对象的类型,即使值为 null(这是我的问题所在)。
我通过绑定(bind)到一个对象然后使用该对象作为获取类型的方式来评估绑定(bind),但我需要知道类型,即使值为 null。
例如,我有这样一个类:
public class Customer{
public string Name { get; set; }
public int Age { get; set; }
}
现在,如果我有一个 WPF 控件绑定(bind)到任何这些属性(假设它们是依赖属性),我想获取属性的类型,即使值为 null。
因此,我有一个自定义控件,它现在有一个表示 {Binding Name} 的 Binding 对象。如何使用 C# 获取“绑定(bind)对象”的类型?
最佳答案
您是否愿意使用反射来访问非公共(public)成员?如果是这样,我认为Binding
有一个名为 CreateBindingExpression
的内部方法返回 BindingExpression
,它有一个名为 _listener
的私有(private)成员内部类型 PropertyPathListener
.它有一个名为 LeafType
的内部属性,我相信这就是您要找的。p>
它很困惑,需要信任,并且在未来版本的框架中可能会失败,但它可能是获得所需内容的唯一方法。
关于c# - 我可以在 C#/WPF 中获取绑定(bind)对象的 Type() 吗(即使绑定(bind)值为 null)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548596/