gpt4 book ai didi

c# - 无关类之间的事件

转载 作者:行者123 更新时间:2023-11-30 20:08:51 26 4
gpt4 key购买 nike

我有 A 类,它是我主窗口的数据上下文。我有 B 类,它是应用程序窗口之一的 View 模型。类之间没有关系。

我需要以某种方式在 B 类中引发事件,而事件处理程序位于 A 类中。

有可能吗?

我正在做的事情的例子是:我想改变 B 类的主窗口标题。

感谢帮助

最佳答案

在我的书中,您应该查看用于发布/订阅的信使/事件聚合器。 PRISM 自带一个,所以做像 MVVM Light 工具包这样的事情,或者你可以从 Github 上获取我自己的“插入 cs 文件”之一 - TinyMessenger .

这允许解耦通信 - 发布者和订阅者唯一的共同点是聚合器和消息格式本身。如果这些类不相关,并且可能是单独构造的,则不应将它们与事件耦合。如果你确实使用了一个事件,你需要知道订阅一个事件对 GC 的影响,如果两个类的生命周期是不同的。

所以,在一个非常简单的例子中,在 A 类中你会做类似的事情

this.messenger.Subscribe<TitleChangeMessage>(m => <do some stuff>);

然后在 B 类中,每当你想触发你会做的“事件”时:

this.messenger.Publish(new TitleChangedMessage("new title"));

关于c# - 无关类之间的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6633739/

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