我有一个ListView绑定到某个对象的Observable Collection。在ListView中选择和item会显示一个表单。我的业务案例是当用户在ListView中从一个项目切换到另一个项目时,如果有任何未保存的更改,则应提示用户是/否/取消。如果用户单击否,则应从列表中删除所选项目。
我有一个ListViewItem的ViewModel和IsSelected属性我提示用户。现在,当我从Observable Collection中删除该项时,IsSelected = True,以便下次被选中时,我收到错误..
“集合已修改;枚举操作可能无法执行”..
答案 0 :(得分:1)
我很确定您遇到了问题,因为您的程序在选择它的同时从集合中删除了当前选定的项目。点击该项目正在更改SelectedItem
的{{1}},您同时删除了该项目,而没有为ListView
设置新值。
您可能想要做的是在窗口的视图模型中创建一个属性,并将SelectedItem
的{{1}}属性绑定到它。当该属性的值发生更改时,您可以提示用户,然后将ListView
设置为适当的值(即,删除当前所选项目后所选项目应该是什么,如果集合即将被删除,则为null)在之前将其从基础集合中删除。