2013-10-01 149 views
0

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

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

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

    } 
} 

现在的需求发生变化,不希望中检索所有项目(集),并在上面的代码及其对应的子项,而不是我们只是需要检索所选择的项目中UI与相应subitems.For这一要求我的团队通过添加一个属性selectedItem来更改viewModel类中的代码,该属性包含用户选择的项目及其相应的子项目。

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

所以我已经改变了外foreach循环从

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

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

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

错误:foreach语句无法在类型“类的名字XXXXXXXXX”的变量操作不预先包含

回答

0

外环应去除“的GetEnumerator”

由于一个公共定义和剩余(原内)循环应该只是看起来像这样:

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

} 
+0

我只在我的上面code.foreach在DemoViewModel.selectedItem(VAR demoviewmodelitem)改变外foreach循环//此处将selectedItem是财产不是收藏。 – user2580179