我有一个自定义类型,作为几个字段,我只想获得依赖属性。
以下是返回所有属性的代码:
propertyInfos = myType.GetProperties();
foreach (PropertyInfo propertyInfo in propertyInfos)
{
Console.WriteLine(propertyInfo.Name);
}
我知道我必须在GetProperties的参数中添加一些东西,有些东西是BindingFlags.XXX但是我检查了所有可能的XX,并且没有找到对我来说听起来不错的东西...
答案 0 :(得分:5)
依赖项属性是DependencyProperty
类型的静态字段static IEnumerable<FieldInfo> GetDependencyProperties(Type type)
{
var dependencyProperties = type.GetFields(BindingFlags.Static | BindingFlags.Public)
.Where(p => p.FieldType.Equals(typeof(DependencyProperty)));
return dependencyProperties;
}
如果您想获得该控件的父项的依赖项属性,则可以使用以下方法:
static IEnumerable<FieldInfo> GetDependencyProperties(Type type)
{
var properties = type.GetFields(BindingFlags.Static | BindingFlags.Public)
.Where(f=>f.FieldType == typeof(DependencyProperty));
if (type.BaseType != null)
properties = properties.Union(GetDependencyProperties(type.BaseType));
return properties;
}