0

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

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

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

     }
}

现在需求发生了变化,不想在上面的代码中检索所有项目(集合)及其相应的子项目,而是我们只需要在 UI 中检索带有相应子项目的选定项目。为此,我的团队已经更改了代码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”的公共定义

提前致谢

4

1 回答 1

0

外部循环应该被移除,剩下的(以前的内部)循环应该是这样的:

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

}
于 2013-10-01T12:20:54.510 回答