包含IDisposable成员的WPF控件

pdi*_*ddy 10 .net c# wpf

我在后面的WPF代码中有一个成员是一次性的(意味着它实现了IDisposable接口)

我没有看到任何可以从WPF中的UserControl覆盖的Dispose方法,所以我可以在我的wpf usercontrol中处理该成员

在WPF用户控件中处理成员的正确方法是什么?

它是一个用户控件,它包装了一个实现IDisposable接口的私有成员.因此,我需要在某个地方处置该成员.在传统的winform中,usercontrol有一个可以覆盖的Dispose方法,以便在覆盖中我可以处理私有成员.但是在WPF用户控件中,没有这样的东西.所以我想知道在哪里可以处理wpf usercontrol中的私有成员.

我的问题不是关于处理usercontrol,而是在哪里部署一个实现IDisposable接口的私有成员

MrD*_*osu 5

您可以使用 UserControl 的 Unloaded 事件来进行资源清理。

  • 这是行不通的。来自 MSDN 文档:请注意,应用程序开始关闭后不会引发 Unloaded 事件。当 ShutdownMode 属性定义的条件发生时,应用程序将关闭。如果将清理代码放置在 Unloaded 事件的处理程序中(例如针对 Window 或 UserControl),则可能不会按预期调用它。 (3认同)
  • 标准方法是通过 MVVM/MVP 模式等消除隐藏代码,并在更高级别上处理处理。 (2认同)