我有两个窗口:一个主窗口和一个通过双击主窗口数据网格中的特定行打开的详细信息窗口。保存详细信息窗口中的数据时,我想刷新主窗口的数据网格控件。
(一些不相关的细节:每个窗口都继承自一个BaseWindow
类,并且有一个继承自 EF5 的类的自己的副本DbContext
。我已向Save
部分类添加了一个事件,并在调用时重写SaveChanges
以引发此事件SaveChanges
。这实际上是事件我正在附加一个事件处理程序。)
我知道我可以通过将事件处理程序附加到事件来做到这一点Save
。但是,我不知道关闭窗口的顺序 - 如果先关闭主窗口,则详细信息窗口的实例仍然会引用它。
如果我监听Closing'/'Closed
主窗口的事件,以便知道何时释放附加到“保存”事件的处理程序,我将遇到同样的问题——即使在详细信息窗口关闭。
我知道我可以按照这里WeakEventManager
的描述实现 a ,但我想知道是否有更简单的技术可以使用。(有人告诉我我有把事情复杂化的倾向。)
(我没有使用 MVVM。)