【发布时间】:2010-02-25 01:07:46
【问题描述】:
我有一个用于同步的后端字典(即文件存储和网络服务)。
最重要的是,我需要为 WPF 前端生成列表/可枚举项以供使用。将枚举连接到字典和在更新为使用 ObservableCollection 时调用 PropertyChanged 并让它自动调用其 CollectionChanged 之间有什么区别。
同步在后台自动进行,一些元素可能会被移除,另一些元素可能会被更新。我想将此信息顺利传播到 WPF 前端和用户。 (即,如果删除了一项,则不必重新初始化整个显示)。我还想在添加和删除项目时添加动画(即淡入和淡出) - 如果我替换整个列表是否有可能,还是会导致每个项目再次淡入?
我也应该这样做:
1) 使用可观察集合并在字典和集合之间编写一些花哨的同步逻辑?
2) 使用 linq 扩展方法将字典转换为可枚举,并在它发生变化时简单地调用可枚举的 propertychanged?
3) 通过在更新列表时替换列表来在字典和列表之间进行同步?
另外,这些如何与仅为 UI 执行的排序和过滤操作一起工作? (即,如果我需要根据用户选择从字典中过滤出一些元素,我应该使用与您推荐的方法类似的方法吗?)
【问题讨论】:
标签: wpf data-binding synchronization observablecollection