Silverlight中的可观察集合

我的应用程序是在Silverlight中使用MVVM架构开发的,并且具有下面一段代码,它试图从UI中检索所有Items(集合)及其相应的子项,并且它没有任何问题地正常工作。

public ObservableCollection<DemoViewModel> Items { get; private set; }

foreach (var demoviewmodelitem in DemoViewModel.Items) //Items collection (Count=8)
{
     foreach (var item in demoviewmodelitem.SubItems)
     {

     }
}

现在需求被改变了,并且不想在上面的代码中检索所有的Items(集合)及其相应的子项目,而是我们只需要在UI中用相应的子项目检索Selected Item。对于这个需求,我的团队已经改变了代码viewModel类通过添加一个属性selectedItem来包含用户选择的项目及其相应的子项目。

当我在Add Watch中调试上述代码时,我可以看到DemoViewModel.selectedItem包含用户​​在UI中选择的项目(例如Item6)和相应的子项目。

所以我改变了外部的foreach循环

foreach (var demoviewmodelitem in DemoViewModel.Items) //collection

foreach (var demoviewmodelitem in DemoViewModel.selectedItem)//Property

并得到以下错误。 我怎样才能摆脱这个错误,并想从上述代码中只检索selecteditem和相应的子项?

错误:foreach语句不能对类型为“类名XXXXXXXXX”的变量进行操作,该变量不包含“GetEnumerator”的公共定义

提前致谢


应该删除外部循环,其余(以前的内部)循环应该看起来像这样:

foreach (var item in DemoViewModel.selectedItem.SubItems)
{

}
链接地址: http://www.djcxy.com/p/53891.html

上一篇: observable collections in Silverlight

下一篇: Is there an AddRange equivalent for a HashSet in C#