2011-03-03 44 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

相关问题