问题的简化版本。因此,专注于技术问题而不是用户友好性。;)
我有一个列表框,里面装满了 ObservableCollection 中的项目。它显示在我的第一个视图中。
通过选择列表中的项目,用户转到另一个视图。我交换了这个视图,所以第一个不在 xaml 树中。
在第二个视图中,他们可以执行操作。其中一项操作使项目远离顶部列表(如将项目传递给另一个用户)。
第一个视图侦听该事件并可以从列表中删除该项目。Items.Remove(item) 问题是该项目并不总是从 ListBox 中消失(但它确实从基础列表中消失,我已经通过调试进行了检查)。我认为这可能与更新集合时未显示的视图有关。我已经将 SelectedItem 设置为 null 进行了测试,认为选择可能会在删除后保留在那里,但它没有任何区别。
这是一个已知的限制,列表框更新必须可见才能生效?
我可以触发一些东西来让 observablecollection 重新触发通知吗?