gpt4 book ai didi

c# - 列出 DependencyObject 的属性?

转载 作者:行者123 更新时间:2023-11-30 22:35:04 28 4
gpt4 key购买 nike

我得到了我创建的自定义 DependencyObjects 的集合。但我认为 DependencyObject 来自哪里并不重要。问题是我想要列出它的属性,但是当我查看 DependencyObject 的 C#doc 时,我找不到与属性相关的任何内容......:/

我该怎么做?

(注意:我的 DependencyObject 中有字段(字符串、整数等)作为属性,我也有 DependencyProperties。最终我只想列出 DependencyProperties 但这不是义务!)

提前感谢我的语言,我是法语 -_-(也为我的总统感到抱歉……)

最佳答案

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

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 标志。

关于c# - 列出 DependencyObject 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570547/

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