【发布时间】:2017-06-01 16:25:43
【问题描述】:
我正在为我的应用程序使用 MVVM Light,并且我还实现了 INavigationService 以在页面之间返回/返回。
所以在一个常见的场景中,它是这样的
MainPage > Categories > Rounds > DataPage.
在 DataPage 中,我发出请求以获取结果,并根据回调返回的结果调用 .GoBack() 方法从堆栈中弹出当前页面并返回到 Rounds。
我注意到的是,如果我首先点击 DataPage 并且 .GoBack() 被调用,然后点击不同的回合,回调方法将被触发两次,如果我返回并再次返回三次,然后继续像这样。
本质上,这意味着 .GoBack() 将被再次调用并且导航会变得混乱。
我相信这与没有清理以前的虚拟机有关,我尝试使用 SimpleIOC 中的 UnRegister / Register 类更改此行为,但没有运气。
【问题讨论】:
-
听起来你在进入时连接了事件,但在离开时没有取消它。我会从回调中的事件中删除回调。
-
@Slepz 我正在尝试这样做,现在以另一种方式进行,请检查我提出的答案并告诉我您的评论。