2011-03-16 125 views
0

我有一個ListView綁定到某個對象的Observable集合。選擇和ListView中的項目顯示一個窗體。我的商業案例是當用戶在ListView中從一個項目切換到其他項目時,如果有任何未保存的更改,則會提示用戶是/否/取消。如果用戶點擊否,則應從列表中刪除所選項目。WPF ListView刪除項目IsSelected MVVM

我有一個ViewModel的ListViewItem和IsSelected屬性,我提示用戶。現在,當我從觀察集合中刪除該項目時,IsSelected =真,這是獲得選擇下一次,我收到錯誤..

「集合被修改;枚舉操作可能不會執行」 ..

+1

你應該真的發佈一些代碼。綁定到你的列表框,虛擬機代碼和剪切操作的錯誤拋出 – blindmeis 2011-03-16 06:51:48

回答

1

我很確定你遇到問題,因爲你的程序在選擇它的同時從集合中刪除當前選定的項目。點擊該項目將更改SelectedItemListView,並且您將同時移除該項目,而不爲SelectedItem設置新值。

你可能想要做的是在窗口的視圖模型中創建一個屬性,並將ListViewSelectedItem屬性綁定到它。當該屬性的值發生變化時,您可以提示用戶,然後將SelectedItem設置爲適當的值(例如,在當前選定的項目被移除後選擇的項目應該是什麼,否則爲null)之前,您將其從底層集合中刪除。

+0

我面臨同樣的問題,我理解你的解決方案。我用同樣的方式,但仍面臨同樣的問題。 – PawanS 2011-03-25 14:59:45