虽然在WPF中实现我的第一个MVVM应用程序,但我一直想知道在View中使用的相关ViewModel集合中包装Model集合的优缺点。MVVM中的大型模型集合
在我们的系统中,我们可能有几个潜在的大集合,例如订单中的订单行以及可为订单行选择的库存项目。目前,这些都是从数据访问层的SQL中查找的,然后SqlDataReaders环绕创建一个模型对象集合。
然后,在创建ViewModel对象集合时循环收集Model对象看起来像是不必要的开销。当Model对象的集合较大时,最好是直接在View上公开这些对象?
预先感谢您的帮助,马克
编辑 虽然在这个问题上我发现今年this MSDN article从七月读了这给出了一个非常平衡的观点(由约什 - 史密斯没少综述) MVVM的,并在“类别”部分对此表示:
与集合的另一个问题是 确定何时或是否包裹每个 模型我在ViewModel实例中收集 的实例。对于 小集合,视图模型可以 展露新观察到的收集和 底层 模式集合中的所有内容复制到视图模型 观察集合,包裹每 示范项目集合在一个 对应的视图模型的实例,因为它 去。 ViewModel可能需要 监听收集更改事件 以将用户更改传回 底层模型。
然而,对于非常大的集合 会以某种形式 虚拟化面板,最简单,最 务实的态度来暴露只是为了 公开模型直接对象。
非常感谢您的意见,到目前为止,试图限制传递到视图模型的数据量,或使用分页或其他适当的管制措施,将减少问题,我敢肯定,但我不知道是否会有仍存在是否只需将ViewModel中的Model对象集合绑定就可以了?
是标记还是特德? – 2010-09-28 14:46:12
泰德是我的昵称查看我的真名模型的马克! (这个评论是ViewModel?!) – Ted 2010-09-28 14:53:26