我有一个MainViewModel
,其中包含PersonViewModel
和HouseViewModel
作为属性。 HouseViewModel
拥有属性GetRooms
。从PersonViewModel
访问此属性的最佳方法是什么?
我的解决方案是将MainViewModel
的实例传递给PersonViewModel
,然后我可以致电MainViewModel.HouseViewModel.GetRooms
。然而,这似乎有点浪费。
我很高兴将一个函数作为委托传递,但我似乎无法使用Property执行此操作。我已经搜索了一个这样的例子,并且只提出了过于复杂的技术。我假设必须有一个简单的方法,因为这似乎是一个常见的问题。有谁可以指出一个很好的例子?
或者还有另一种我没有考虑的替代方法吗?
答案 0 :(得分:2)
如果必须跨两个viewmodel共享方法,则应在基本视图模型或服务中定义该方法。最好的方法是常见的Service类应该包含GetRooms,CheckIn,CheckOut等所有常用方法。此服务应该使用Dependency Injection提供给每个viewmodel。
public class HomeViewModel
{
public HomeViewModel(IRoomService roomservice)
{
}
}
public class PersonViewModel
{
public PersonViewModel(IRoomService roomservice)
{
}
}