WPF 用户控件,它是选项卡控件中的一个选项卡 - 如何检测它是否正在关闭

本文关键字:选项 控件 检测 何检测 是否 用户 一个 WPF | 更新日期: 2023-09-27 18:36:45

我有一个从UserControl继承的类。 我在 WPF 选项卡控件中将此类显示为选项卡。 该选项卡有一个小 x,可以通过单击它来关闭它。 我需要一种方法在销毁选项卡之前执行一些清理代码。

我不相信我可以使用卸载事件来执行此操作,因为卸载事件是在用户控件被销毁时调用的,当您单击另一个选项卡时也会调用它。

关于如何处理这种情况的任何想法?

编辑:以下是更多信息。在我的 UserControl 类中,我有一个我正在使用的 3rd 部分控件。基本上是一个图形控件。我想运行几行代码以确保没有内存泄漏。如果您想阅读更多关于它的信息,那么这将是谈论更多内容的网址:

http://support.scichart.com/index.php?/News/NewsItem/View/21/wpf-xname-memory-leak--how-to-clear-memory-in-scichart

WPF 用户控件,它是选项卡控件中的一个选项卡 - 如何检测它是否正在关闭

你可以在 GitHub 上的 dragablz TabControl 中看看我是如何做到这一点的。

实质上,TabControl 侦听从关闭按钮引发的 RoutedCommem,然后调用可选的回调,该回调使 MVVM 视图模型(或旧样式控件类型代码)能够释放关联的视图模型,或执行要执行的任何其他整理代码(或实际上取消关闭操作)。

在 GitHub 上的示例项目文件中,查找 ClosesingItemHandlerImpl 并从那里返回。

http://github.com/ButchersBoy/Dragablz/blob/master/DragablzDemo/BoundExampleModel.cs

ClosesingItemHandlerImpl 从 XAML 绑定到,选项卡控件将在删除选项卡之前调用它。