【问题标题】:WPF ListView Delete Item IsSelected MVVMWPF ListView 删除项目 IsSelected MVVM
【发布时间】:2011-03-16 05:40:49
【问题描述】:

我有一个 ListView,它绑定到某个对象的 Observable Collection。在 ListView 中选择和项目会显示一个表单。当用户在 ListView 中从一个项目切换到另一个项目时,我的业务案例是这样的,如果有任何未保存的更改,应该提示用户是/否/取消。如果用户单击否,则应从列表中删除所选项目。

我有一个 ListViewItem 的 ViewModel,并且在 IsSelected 属性中我正在提示用户。现在,当我从 Observable 集合中删除该项目时,IsSelected = True 下一次被选中时,我收到错误..

“集合已修改;枚举操作可能无法执行”..

【问题讨论】:

标签: wpf listview mvvm


【解决方案1】:

我很确定您遇到了问题,因为您的程序在选择它的同时从集合中删除了当前选择的项目。单击该项目正在将SelectedItem 更改为ListView,并且您将同时删除该项目而不为SelectedItem 设置新值。

您可能想要做的是在窗口的视图模型中创建一个属性并将ListViewSelectedItem 属性绑定到它。当该属性的值发生变化时,您可以提示用户,然后将SelectedItem 设置为适当的值(即,在当前选定的项目被删除后,选定的项目应该是什么,或者如果集合即将为空,则为 null ) 从基础集合中移除它之前。

【讨论】:

  • 我面临同样的问题,我了解您的解决方案。我用了同样的方法,但仍然面临同样的问题。
猜你喜欢
  • 1970-01-01
  • 2018-10-10
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
相关资源
最近更新 更多