2013-10-01 196 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