首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否列出DependencyObject的属性?

是否列出DependencyObject的属性?
EN

Stack Overflow用户
提问于 2011-09-27 22:09:38
回答 1查看 463关注 0票数 2

我得到了一个我创建的自定义DependencyObjects的集合。但我认为无论DependencyObject来自哪里都无关紧要。问题是我想要它的属性列表,但是当我查看DependencyObject的C#doc时,我找不到任何与属性相关的东西……:/

我该怎么做呢?

(注意:我有字段(string、int等)。)作为我的DependencyObject中的属性,我也得到了DependencyProperties。最后,我只想列出DependencyProperties,但这不是一项义务!)

我是法国人-_- (也为我的总统叫喊……)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-27 22:17:20

您可以使用反射来实现这一点,因为DependencyProperties (通常是?)存储在DependencyProperty类型的公共静态字段中

代码语言:javascript
复制
private static IEnumerable<DependencyProperty> GetDependencyProperties(DependencyObject o)
{
    return from field in o.GetType().GetFields(BindingFlags.Public | 
                                               BindingFlags.FlattenHierarchy | 
                                               BindingFlags.Static)
           where field.FieldType == typeof(DependencyProperty)
           select (DependencyProperty)field.GetValue(null);
}

它使用FlattenHierarchy返回所有的DependencyProperties,包括在父类中定义的那些。如果只想在o的类中直接定义DependencyProperties,请删除FlattenHierarchy标志。

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

https://stackoverflow.com/questions/7570547

复制
相关文章

相似问题

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