在wpf应用程序中使用mvvm模式

时间:2010-12-01 14:47:44

标签: wpf

我是wpf的新手,我正在使用wpf for UI设计客户端 - 服务器应用程序 我有一个视图 - 视图模型,数据主义和通信模型 我的视图和视图模型将形成一个用户控件 以下是我的疑惑:

  1. 如果我将我的datalist保留在viewmodel中,其他视图模型可以如何访问它
  2. 如果我将我的datalist保留在应用程序中,以便任何视图都可以访问它,我的视图模型是否能够通过绑定更新它
  3. 如果我的视图模型直接调用我的通信模型,或者我应该在其间保留一个包装类,那将是一个很好的设计。
  4. 感谢名单

    莎莉嘉

1 个答案:

答案 0 :(得分:0)

您应该考虑使用存储库模式来访问您的项目列表。您的视图模型应该对此存储库的抽象(例如IPeopleRepository)起作用,您应该通过注入将此存储库的具体实现传递到您的viewmodel中(例如通过构造函数注入)。您的具体实现可以调用您的通信模型来检索项目列表。

通常,您的存储库将返回不特定于WPF的集合类型。您可能希望将此包装在viewmodel上的ObservableCollection中,以便通知UI该集合的更改。

每个viewmodel是否检索对此集合的新引用,或者它们是否都访问同一集合,将取决于您的用例,但只要该集合作为DataContext上的属性公开(通常是您的viewmodel),然后你就可以绑定到集合,从视图中显示和更新它。