如何在不阻止垃圾收集的情况下订阅事件?

How to subscribe to an event without preventing garbage collection?

假设 AppConfiguration.Instance 是一个单身人士。

现在假设我的 UI 动态添加了一个按钮,如果配置发生更改,该按钮应更改其文本,因此我的应用可以执行以下操作:

AppConfiguration.Instance.Changed += Changed_Handler;

关于按钮的代码,但我不想这样做,因为在用户导航到另一个屏幕并且按钮从表单中删除后,这会阻止按钮的垃圾收集

我的问题是:是否有一种设计模式可以在不阻止垃圾收集的情况下监听事件,而无需使用 AppConfiguration.Instance.Changed -= Changed_Handler; 手动取消订阅事件?

在写完问题并进行最后一次发布前搜索弱绑定后,我遇到了 weak event pattern 完全符合我的要求