我有一个包含以下项目的解决方案
GUI知道ViewModels和服务。 服务知道ViewModels。
该服务有一个方法,该方法返回ObservableCollection
PersonViewModels
:
public ObservableCollection<ViewModels.PersonViewModel> LoadPersons() {...}
在GUI中,当我尝试加载人员时,我想按如下方式执行:
ObservableCollection<ViewModels.PersonViewModel> persons = service.LoadPersons();
问题是我的编译器说我必须施放
Service.TheService.ViewModels.PersonViewModel
到
ViewModels.PersonViewModel
为什么这样?我只想在一个地方定义我的视图模型。 我似乎有一个建筑问题。
答案 0 :(得分:2)
我不知道我是否正确理解了你的问题,但似乎你已经在两个不同的地方实现了代表相同事物的类。 PersonViewModel类已在Service和ViewModels层中实现。
如果ViewModel中的实现没有添加任何其他功能,则应删除它并仅使用WCF服务中的实现。
如果ViewModel中的实现确实添加了应用程序所需的其他功能,那么您需要创建一个从Service.PersonViewModel到ViewModel.PersonViewModel的转换方法,您应该使用它来从您的示例中进行转换