我希望主视图模型有一个特定的列表,然后从许多其他视图模型访问。
例如,在 MainViewModel.cs 中我将有一个 50 个数字的列表,然后在 NumListViewModel.cs 中,我想访问它以便将其显示为列表,并且在 AddNumViewModel.cs 中我希望能够更新该列表。
有人建议我使用 events / evenaggerator,我这样做了,但不幸的是,据我所知,我所能做的就是将一个 num 从一个视图发送到另一个视图并告诉它更新列表,但问题是,程序增长,我需要在主视图模型中有很多订阅者,当实际发生某些事情时,我将不得不根据订阅者的数量“发布”事件,这使得维护变得更加困难。
我还找到了另一个答案,指示在 mainVM 中创建另一个 VM 的实例,参数设置为“this”,这是对 mainVM 的引用。它有效,但话又说回来,它可能会变得很长。
所以我的问题是,有没有更好的方法从另一个 VM 访问属性?
就像字面上有一个在 mainVM 中保存列表的类的实例,然后只需能够从其他 VM 更新/访问它,而无需显式编程哪个 VM 可以。会让生活变得如此轻松。
在您的回答中,请尽量避免建议框架。虽然有一些非常好的,但我希望至少能够自己做到这一点。
例如:
MainVM.cs:
public class MainVM
{
List lst = new List(); //Let's just say it's full...
}
其他VM.cs:
public class OtherVM
{
lst.Add(3);
}
PS:是的,我知道它已经被问过了,是的,我已经进行了研究,但是我发现的答案太“静态”了,我猜?