首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法通过反射获取WPF附加属性

无法通过反射获取WPF附加属性
EN

Stack Overflow用户
提问于 2013-05-20 16:24:26
回答 1查看 600关注 0票数 0

我在共享库中有自定义的附加属性:

代码语言:javascript
运行
复制
public class Freezable
{
    public static bool GetIsFrozen(DependencyObject obj)
    {
        return (bool)obj.GetValue(IsFrozenProperty);
    }

    public static void SetIsFrozen(DependencyObject obj, bool value)
    {
        obj.SetValue(IsFrozenProperty, value);
    }

    public static readonly DependencyProperty IsFrozenProperty =
        DependencyProperty.RegisterAttached("IsFrozen", typeof(bool), typeof(UIElement), new UIPropertyMetadata(false));
}

此属性已在代码中测试,并且值已成功存储。

代码语言:javascript
运行
复制
Freezable.SetIsFrozen(control, value);
var correctValue =Freezable.GetIsFrozen(control);

但是,我正在尝试通过反射来获取我的属性。我有一个异常,那就是找不到属性(getMethod和setMethod都是空的)!

代码语言:javascript
运行
复制
 public void FindAttachedProperty(Type elementType, string propertyName)
    {
        MethodInfo getMethod = elementType.GetMethod("Get" + propertyName, BindingFlags.Public | BindingFlags.Static);
        MethodInfo setMethod = elementType.GetMethod("Set" + propertyName, BindingFlags.Public | BindingFlags.Static);
    }

Canvas.Left,Canvas.Right运行良好,没有任何问题。我做错了什么,为什么我不能得到我的财产!?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 16:53:26

你的代码对我来说工作得很好。我最好的猜测是,当你调用FindAttachedProperty方法时,你给出的是System.Windows.Freezable作为elementType,而不是你自己的库实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16645391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档