客户服务架构

时间:2010-12-03 14:47:03

标签: wpf architecture mvvm service

我有一个包含以下项目的解决方案

  • GUI(包含视图)
  • ViewModels(包含所有视图模型)
  • 服务(提供远程数据的WCF服务“TheService”)

GUI知道ViewModels和服务。 服务知道ViewModels。

该服务有一个方法,该方法返回ObservableCollection PersonViewModels

public ObservableCollection<ViewModels.PersonViewModel> LoadPersons() {...}

在GUI中,当我尝试加载人员时,我想按如下方式执行:

ObservableCollection<ViewModels.PersonViewModel> persons = service.LoadPersons();

问题是我的编译器说我必须施放

Service.TheService.ViewModels.PersonViewModel

ViewModels.PersonViewModel

为什么这样?我只想在一个地方定义我的视图模型。 我似乎有一个建筑问题。

1 个答案:

答案 0 :(得分:2)

我不知道我是否正确理解了你的问题,但似乎你已经在两个不同的地方实现了代表相同事物的类。 PersonViewModel类已在Service和ViewModels层中实现。

如果ViewModel中的实现没有添加任何其他功能,则应删除它并仅使用WCF服务中的实现。

如果ViewModel中的实现确实添加了应用程序所需的其他功能,那么您需要创建一个从Service.PersonViewModel到ViewModel.PersonViewModel的转换方法,您应该使用它来从您的示例中进行转换