我试图将两个viewmodels
彼此连接,最后使用static events
。这是我所得到的概述。
MainViewModel
ChildViewModel
我试图在MainViewModel构造函数中实例化ChildViewModel
ChildViewModel childViewModel;
public MainWindowViewModel()
{
childViewModel = new ChildViewModel();
childViewModel.TextStatusChanged += ChildViewModel_TextStatusChanged;
}
但是,此方法失败了,因为在此处创建的ChildViewModel
实例以范围结尾结束,而且在其相关视图中创建的ChildViewModel
实例与我创建的实例完全不同。在MainViewModel
中创建。
然后我将其更改为使用此类静态事件
public MainWindowViewModel()
{
ChildWindowViewModel.TextStatusChanged += ChildViewModel_TextStatusChanged;
}
它就像魅力一样工作,但经过一番阅读后,我发现所有人都说静态事件很糟糕,因为它们可能导致内存泄漏。
我可以使用哪些替代静态事件的方法,或者如何附加相同的viewmodel
实例来容纳同一事件。
答案 0 :(得分:0)