WPF MVVM -使用委托访问其他视图模型的属性
本文关键字:视图 其他 模型 属性 访问 MVVM WPF | 更新日期: 2023-09-27 18:15:28
我有一个MainViewModel
,它的特性是PersonViewModel
和HouseViewModel
。HouseViewModel
具有GetRooms
的属性。从PersonViewModel
访问该属性的最佳方法是什么?
我现在的解决方案是将MainViewModel
的实例传递给PersonViewModel
,然后我可以调用MainViewModel.HouseViewModel.GetRooms
。然而,这似乎有点浪费。
我很乐意传递一个函数作为一个委托,但我似乎不能这样做与一个属性。我已经寻找了一个这样的例子,只提出了过于复杂的技术。我假设一定有一个简单的方法来做到这一点,因为它似乎是一个常见的问题。谁能举出一个有力的例子?
或者是否有另一种我没有考虑过的替代方法?
如果一个方法必须在两个视图模型之间共享,它应该在基视图模型或服务中定义。最好的方法是一个公共服务类应该包含所有公共方法,如GetRooms、CheckIn、CheckOut等。这个服务应该通过依赖注入提供给每个视图模型。
public class HomeViewModel
{
public HomeViewModel(IRoomService roomservice)
{
}
}
public class PersonViewModel
{
public PersonViewModel(IRoomService roomservice)
{
}
}