小编man*_*kar的帖子

在MvvmLight viewmodel上调用Cleanup()会取消注册所有消息

我在我的第一个WPF4项目中使用MvvmLight 4.0/C#并且还在学习MVVM/WPF绳索,在那里我发现许多以前的Windows窗体技能无效.

无论如何,我有从获得的ViewModels viewmodelbase该Register消息和同样享有这样做(注册信息)的VM/VM和VM/V通讯.清理时的所有mvvmlight资源都说我应该使用Unregister消息来避免内存泄漏.

因此,当我完成使用视图时,我只是调用Messenger.Default.Unregister(this)视图/窗口的unload事件.当我完成使用a时viewmodel,我只是调用viewmodelbase.Cleanup()我的viewmodel引用,假设基​​本实现将执行(覆盖)取消注册.

我想知道如果只是调用Cleanup()就viewmodel足够了,或者我是否必须在每个视图模型中覆盖此方法并Unregister在每个覆盖中明确地调用.现在我在adhoc基础上创建/处置我的大多数视图模型(不使用SimpleIOC/ServiceLocator),我只对取消注册清理中的所有消息感兴趣.

我发现以下SO标记已连接,但仍然没有回答我的查询,因为ViewModelBase.Cleanup()通过显式覆盖派生中的方法简单地调用vs Unregistering viewmodel.

取消注册(this)从一切中取消注册此实例?

何时何地以mvvmlight取消注册Messenger

c# wpf mvvm mvvm-light

4
推荐指数
1
解决办法
6463
查看次数

标签 统计

c# ×1

mvvm ×1

mvvm-light ×1

wpf ×1