|
|
1
8
一旦不再需要消息处理程序,请确保注销它们。信使保留对已注册方法的引用,这可以防止它们被垃圾回收。 因此,对于ViewModels:确保完成后调用Cleanup(或者实现IDisposable并从那里调用Cleanup)。 对于视图(控件、窗口或类似视图),请调用信使。注销在视图拆分时发生的事件,例如卸载的事件。 这是MVVM的一个已知行为,已经在几个地方进行了讨论。 |
|
|
2
6
很老的问题,但我通过这样做解决了这个问题:
然后,在构造函数中:
|
|
|
3
1
我以前见过这个问题。这和信使默认注册不止一次被打电话。MVVMLight Messenger类将注册相同的项目“x”次。这就是为什么当你打电话给送信人时,你会收到很多次。 有人知道如何防止MVVMLight多次注册吗? |
|
|
4
1
真的很老了,但我想我会回答,以防有人需要它。当时我对silverlight还不太熟悉,问题最终是内存泄漏,因为viewModel有多个实例,仍然在内存中。 |
|
5
0
正如其他贡献者所提到的,同一条消息被多次注册。我注意到在导航到视图X,然后导航回视图Z时发生了这种行为,在视图Z中,消息注册在Z视图模型的构造函数中。一种解决方案是设置 NavigationCacheMode 所需的属性
|
|
|
Pablo · MVVM实施中的疑问 9 年前 |
|
|
Speuline · MVVM模式视图的特定模型? 10 年前 |
|
|
Jeff · MVVMLight CanExecute在窗口单击之前不工作 10 年前 |
|
|
yams · 如何在MVVM Light中调用另一个视图模型构造函数 11 年前 |
|
|
Francois · 如何从类型注册到<T> 11 年前 |