我的应用程序是在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)
{
}
}
现在需求已更改,并且不想在上面的代码中检索所有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”的公共定义
先谢谢
答案 0 :(得分:0)
应该删除外部循环,其余的(以前是内部)循环应该如下所示:
foreach (var item in DemoViewModel.selectedItem.SubItems)
{
}