【发布时间】:2016-09-04 09:18:58
【问题描述】:
我目前有一个视图(Android 片段)和一个对应的 ViewModel。我现在想在 ViewModel 中引发一个 View 可以订阅的事件。
存档的最佳方式是什么?我听说一个常规的 C# 事件(委托)会导致内存泄漏?这是 WeakSubscribe 功能的原因吗?如何将其绑定到事件?
【问题讨论】:
-
这个事件在处理的时候在做什么?属性更改通知会起作用吗?
-
ViewModel 管理一个项目列表(它们是 Sub-ViewModels),一旦用户点击其中一个子项目,ViewModel 应该通知视图该子项目被点击。我还需要点击哪个项目的信息。
-
你对视图中的这些信息做了什么?
-
我正在显示一个 Toast 以通知用户该项目已成功添加到收藏列表。
-
我个人不会添加事件并在视图中处理它 - 相反,我会创建一个通过接口公开的通知服务并在视图模型中调用它,并在 android 代码中实现表示敬酒。这样它就更易于单元测试,并且更容易跨平台 - 只需编写服务的 iOS 实现,以您想要的任何方式显示通知。