【发布时间】:2017-02-26 02:02:44
【问题描述】:
我将 MVVM 用于表示模型并允许用户与之交互的 WPF 客户端。我一直避免在实际模型中使用 ObservableCollection 类(在该模型中选择像 IList 这样的通用集合,然后在底层集合更改时将该 IList 转换为 ViewModel 上的实际数据绑定 ObservableCollection)。原因是 MSDN 将该类呈现为 WPF 和以 UI 为中心:
您可以枚举任何实现 IEnumerable 的集合 界面。但是,要设置动态绑定,以便插入或 集合中的删除会自动更新 UI, 集合必须实现 INotifyCollectionChanged 接口。这 接口暴露了 CollectionChanged 事件,该事件应该是 每当基础集合更改时引发。 WPF 提供 ObservableCollection 类,它是一个内置的实现 实现 INotifyCollectionChanged 的数据收集 界面。
问题:我的区别真的有必要吗?这是额外的工作和额外的代码。我知道这个主题对于 SO 来说可能过于模糊和主观,但也许每个人都遵循明确的、普遍认可的约定。
【问题讨论】:
标签: c# wpf mvvm observablecollection