2011-09-27 3 views
2

내가 만든 사용자 지정 DependencyObjects 컬렉션이 있습니다. 그러나 DependencyObject가 어디서 왔는지는 중요하지 않다고 생각합니다. 문제는 목록의 속성을 원하지만 DependencyObject에 대한 C# 문서를 보면 속성과 관련된 내용을 찾을 수 없습니다 .../DependencyObject의 속성을 나열 하시겠습니까?

어떻게 할 수 있습니까? ?

(주의 :.! 내 DependencyObject에있는 속성으로 필드 (문자열, INT, etcetc을 ..) 가지고, 나는 DependencyProperties 너무 Ultimatly 나는 단지 DependencyProperties를 나열하고 싶습니다 가지고 있지만 의무가 아니다)

내 langage에 대한 사전 및 SRY에서

들으, DependencyProperties이기 때문에,

+0

ok, 우리는 우리 대통령에게도 유감입니다. –

답변

3

당신이 사용하는 반사를 할 수 있습니다 (... 너무 내 대통령과 SRY) 프랑스어 -_- 메신저 (보통?) 공공 정적에 저장 유형이 DependencyProperty 인 필드 :

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 클래스에 직접 정의하려는 경우 FlattenHierarchy 플래그를 제거하십시오.