2011-03-03 7 views
0

내가 어떤 유형인지 미리 알 수없고 컨트롤을 가져 와서 아이템 컬렉션을 통과 할 수 있기를 원합니다. 문제는 각 컨트롤이 자신의 캐스팅을 원하고 일반 컨트롤을 수행하는 방법을 모른다는 것입니다. 컨트롤에 항목이없는 경우이 컨트롤을 사용하고 싶습니다 ... 감사.항목이있는 컨트롤, wpf

답변

0

이것은 작동 할 수 있습니다. 컨트롤은 DependencyObject이고, 해당 개체가 IEnumerable을 상속하는 경우에는 iterator가 있습니다.

 private void DoStuffWithControl(DependencyObject dependencyObject) 
    { 
     if (dependencyObject is IEnumerable) 
     { 
      IEnumerator enumerator = (dependencyObject as IEnumerable).GetEnumerator(); 
      while (enumerator.MoveNext()) 
      { 
       // Do whatever you want to do with the item (enumerator.Current) 
      } 
     } 
     else 
     { 
      // Do whatever you want to do with the control 
     } 
    } 
+0

나는 당신의 제안에 따라 내 코드를 변경 – olia

+0

... 당신은 나에게 많은 도움이 당신에게 매우 감사하지만 반복자가 항목 컬렉션을 반복하지 않는, 그것도 반면에 가지 않는다, 컨트롤 같은 항목이 .... 매우 이상한 ... – olia