【问题标题】:mvvm wpf messenger class, unregistering messagesmvvm wpf 信使类,注销消息
【发布时间】:2011-03-09 00:22:42
【问题描述】:

我正在使用 Josh Smith 的 MVVM Foundation 项目 Messenger 类,但我有一个关于退订消息的问题。目前我有多个 ViewModels 将消息注册为字符串,例如我有 -

ViewModelA - 注册消息“A” ViewModelB - 注册消息“A”

所以两个注册的消息都有相同的字符串。

我的问题是,当 ViewModel 关闭时,从 ViewModel 实例取消注册特定消息的最佳方法是什么(假设多个 ViewModel 可以具有相同的消息字符串)。

干杯,

提姆。

【问题讨论】:

    标签: wpf mvvm messages


    【解决方案1】:

    Messenger 类的全部关键在于它只保存对订阅者(“同事”)的弱引用,因此如果您关闭 ViewModel,它会在垃圾回收后立即停止接收消息。

    如果等待垃圾回收仍然不够好,您可以尝试强制垃圾回收。请参阅this link 了解更多信息。

    我能想到的唯一其他选择是继承 Messenger 并编写自己的 Unregister() 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多