列表框每秒更新一次,在工作期间,我需要选择其中的一些项目并执行命令,这是不可能的,因为列表框已更新并丢失了其选定的项目。
ObservableCollection 是我列表中的 ViewModel。
我心里有一些选择,也许还有更好的解决方案:
检测要传播的列表中的新项目并将新项目添加到 ObservableCollection,而无需重新初始化 ObservableCollection
检测旧项目中的更改并在必要时更新其字段。
这有点麻烦,虽然不难,但是还有其他选择吗?
更新,我有的解决方案
我选择了 3 维部分:在更新开始之前,我保存已排序集合的选定索引并加载新集合并与旧集合进行比较。我知道,这效率不高,但对于当前的应用程序来说,这非常适合:集合永远不会超过数百个,通常不会超过 100 个。集合的每个元素都支持急切加载和延迟加载。如果有更改的项目,它们会从服务器加载其内容,而其他项目则保持不变。然后我更新可观察集合,更新服务器中更改的项目并在视图模型中设置选定的索引。手动选择项目解决了更新后失去焦点的问题。
| 归档时间: |
|
| 查看次数: |
7035 次 |
| 最近记录: |