我需要使用反射来获取控件中的绑定值,该控件是一个DataGridTemplateColumn (例如HyperLinkButton)。有人知道我会怎么做吗?
使用TextBlock执行此操作似乎很简单,因为它具有TextProperty依赖属性,但我似乎无法从没有立即TextProperty的控件中获取绑定表达式。下面是我用来获取TextBlock绑定表达式的代码
FrameworkElement fe = (FrameworkElement)dependencyObj;
FieldInfo fi = fe.GetType().GetField("TextProperty");
BindingExpression bindingExpression = fe.GetBindingExpression((DependencyProperty)fi.GetValue(null))但是,对于作为HyperLinkButton的依赖项对象,以下代码永远不起作用
FieldInfo fi = fe.GetType().GetField("ContentProperty");谁知道我怎样才能获得HyperLinkButton内容的BindingExpression (和绑定值
发布于 2010-03-23 06:44:22
您是否尝试过为该字段添加正确的绑定标志?这听起来像是使用反射时的inadaquate绑定标志的情况。TextBlock在TextBlock上有一个文本静态字段,其中as HyperlinkButton具有从ContentControl继承的内容。
尝试使用静态、公共和FlattenedHierarchy绑定标志:
FieldInfo fi = fe.GetType().GetField("ContentProperty", BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy);添加FlattenHierarchy反射绑定标志应该会告诉反射在类层次结构中查找该公共静态字段。
https://stackoverflow.com/questions/2496238
复制相似问题