2011-03-03 12 views
0

私は、どのようなタイプであるかを事前に知ることができず、アイテムのコレクションを通過できるようにコントロールを取得したいと考えています。問題は、各コントロールがそれ自身のキャスティングを望んでいて、コントロールにアイテムがない場合は汎用コントロールを行う方法がわかりません。このコントロールだけを使用したいのです... ありがとうございました。wpfの項目を持つコントロール

答えて

0

これは機能する可能性があります。コントロールはDependencyObjectであり、そのオブジェクトがIEnumerableを継承する場合はイテレータを持ちます。

 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

関連する問題