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