可以将我的消息保存在mvvm light中吗?

时间:2015-10-29 04:40:42

标签: c# wpf mvvm mvvm-light

我有一个使用MVVM Light框架的非常简单的WPF应用程序。一个带有列表框和2个按钮的主窗口。单击其中一个按钮将在我的主窗口上覆盖用户控件(如装饰器类型)。此用户控件具有自己的视图模型,并为一条消息注册,该消息告诉视图模型选择了主窗口列表框中的哪个项目。单击usercontrol上的退出按钮会向主视图模型发送一条消息,告知它隐藏用户控件。我的第二个用户控件的设置几乎相同。

因此,当我还在学习WPF / MVVM时,我不是100%关于取消注册消息应该做的事情(甚至使用cleanup / dispose方法来清理我的视图模型,但我会将其保存为另一个问题继续主题)。我相信我正在遵循所谓的“单例”方法,其中3个视图模型在应用程序启动时构建,并将在我的应用程序的生命周期中保持不变,并且始终只有每种类型的viewmodel中的一种。

所以问题是,在给定应用程序结构的情况下,是否必须取消注册我的消息?如果我必须取消注册,何时? (我的猜测是在我点击退出按钮或收到消息后的某个时候,因为在我完成使用该视图之后我将不会收到任何消息)如果我必须取消注册,何时和我如何重新注册消息,特别是因为我不是每次都创建一个新的viewmodel而我需要我的viewmodel才能在我开始使用它时收到消息?

0 个答案:

没有答案