c# - 重新加载 ItemsSource 时如何在 ListBox 中保留选择

标签 c# wpf mvvm

我正在我们的系统中试验 WPF 和 MVVM。但是,我在仅使用 MVVM(不执行额外的 CollectionViews)的情况下将列表中的内容保持选中状态时遇到了问题。 我目前拥有的是列表

ObservableCollection<ReservationCustomerList> Customers;

然后是存储所选客户的属性

ReservationCustomerList SelectedCustomer;

在我看来,当列表重新加载时(实际上是从另一个异步线程),选择应该能够保留,但是这不会发生。

有人有实现此目的的简洁方法吗?

最佳答案

我们的做法是不替换集合。如果需要,我们添加/删除了条目并更新了现有条目。这将保持选择。

您可以使用 Except 等 LINQ 方法来识别新的或已删除的项目。

关于c# - 重新加载 ItemsSource 时如何在 ListBox 中保留选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7551190/

相关文章:

c# - 连接字符串中存在多个主机

c# - 在部署之前/之后启用 azure 诊断

C# 带线条的组合框

.net - WPF 在 .NET Framework 4.0 中的 x64 上启动缓慢

c# - MVVM:我应该从我的执行方法中检查我的 "CanExecute"方法吗?

c# - 当 WPF ComboBox 更改时触发命令

具有私有(private)构造函数的 C# 单元测试类?

c# - TextBox 绑定(bind)到 double 并输入小于 -1 的负数时出现问题

c# - 类似于 jQuery UI 的模态对话框

razor - 我可以在 Blazor 中编写一个在 View 中动态呈现元素的函数吗?