2010-12-01 109 views
0

我新的WPF和我设计使用WPF的UI 客户端 - 服务器应用程序,我有一个观点 - 视图模型,DataList和通信模型 我的观点和看法模式将形成一个用户控制 以下是我的疑惑:使用MVVM模式的

  1. 如果我把我的内部视图模型数据列表,怎么其他视图模型可以访问它
  2. 如果我把我的数据列表中的应用程序,使任何视图可以访问它,无论我的看法模型将能够通过绑定更新它
  3. 它无线如果我的视图模型直接调用我的通信模型,或者我应该在两者之间保留一个包装类,那么这将是一个好设计。

感谢名单

莎莉嘉

回答

0

你应该考虑使用一个仓库模式来访问你的产品清单。你的视图模型应该反对这个仓库的抽象(例如IPeopleRepository),你应该通过注入(例如通过构造器注入)将这个仓库的具体实现传递给你的视图模型。您的具体实现可以调用您的通信模型来检索项目列表。

通常情况下,您的存储库将返回一个非特定于WPF的集合类型。您可能希望将其封装在您的视图模型的ObservableCollection中,以便向UI通知集合的更改。

无论每个viewmodel是否检索到这个集合的新引用,或者它们是否都访问同一个集合,都将取决于您的用例,但只要该集合作为DataContext上的属性公开(通常是您的viewmodel) ,那么您将能够绑定到集合以显示并从视图更新它。