gpt4 book ai didi

mvvm-light - MVVM Light Messenger执行多次

转载 作者:行者123 更新时间:2023-12-04 21:54:43 27 4
gpt4 key购买 nike

我正在使用MVVM Light,并且正在使用消息在ViewModel之间进行通信,以使ViewModel知道何时可以执行某些操作。我的问题是我注册了一条消息,然后多次收到它。因此,要使我的程序不止执行一次,我必须创建 bool 标志以查看它是否已经被接收到。知道为什么这样做以及如何阻止它吗?

最佳答案

确保不再需要消息处理程序时,请注销它们。 Messenger保留对已注册方法的引用,这可以防止对它们进行垃圾回收。

因此,对于ViewModels:确保完成后调用Cleanup(或实现IDisposable并从此处调用Cleanup)。

对于 View (控件,Windows或类似 View ),请调用Messenger。在 View 拆除后发生的事件中注销,例如Unloaded事件。

这是MVVM的已知行为,已经在多个地方进行了讨论。

关于mvvm-light - MVVM Light Messenger执行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com