gpt4 book ai didi

silverlight - 如何使用反射获取 Silverlight 中具有 ContentProperty 的控件的 BindingExpression(和值)

转载 作者:行者123 更新时间:2023-12-02 02:34:16 25 4
gpt4 key购买 nike

我需要使用反射来获取 DataGridTemplateColumn 控件中的绑定(bind)值(例如 HyperLinkBut​​ton)。有谁知道我该怎么做?

使用 TextBlock 执行此操作似乎很简单,因为它具有 TextProperty 依赖属性,但我似乎无法从控件中获取绑定(bind)表达式没有直接的 TextProperty。下面是我用来获取 TextBlock 的绑定(bind)表达式的代码:

FrameworkElement fe = (FrameworkElement)dependencyObj;
FieldInfo fi = fe.GetType().GetField("TextProperty");
BindingExpression bindingExpression = fe.GetBindingExpression((DependencyProperty)fi.GetValue(null))

但是,下面的代码对作为 HyperLinkBut​​ton 的依赖对象不起作用:

FieldInfo fi = fe.GetType().GetField("ContentProperty");

有谁知道我如何才能获得 HyperLinkBut​​ton 内容的 BindingExpression(和绑定(bind)值)?

最佳答案

您是否尝试过为该字段添加正确的绑定(bind)标志?这听起来像是使用反射时绑定(bind)标志不足的情况。TextBlock 在 TextBlock 上有一个 Text 静态字段,而 HyperlinkBut​​ton 具有从 ContentControl 继承的 Content。

尝试使用 Static & Public & FlattenedHierarchy 绑定(bind)标志:

FieldInfo fi = fe.GetType().GetField("ContentProperty", BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy);

添加 FlattenHierarchy 反射绑定(bind)标志应该告诉反射在类层次结构中查找该公共(public)静态字段。

关于silverlight - 如何使用反射获取 Silverlight 中具有 ContentProperty 的控件的 BindingExpression(和值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2496238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com