WPF UserControl是tabcontrol中的一个选项卡 - 如何检测它是否正在关闭

时间:2015-01-08 21:47:56

标签: c# wpf

我有一个继承自UserControl的类。我在WPF TabControl中将此类显示为选项卡。标签有一个小x,可以通过单击关闭。我需要一种方法来在销毁标签之前做一些清理代码。

我不相信我可以使用Unloaded事件来执行此操作,因为当UserControl被销毁时会调用Unloaded事件,而当您单击另一个选项卡时也会调用它。

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

编辑: 这是更多信息。 在我的UserControl类中,我有一个我正在使用的第三部分控件。基本上是图形控件。我想运行几行代码以确保没有内存泄漏。如果您想了解更多信息,那么这将是更多地了解它的网址:

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

1 个答案:

答案 0 :(得分:2)

您可以在dragablz上的GitHub TabControl中查看我的方式。

基本上TabControl侦听从关闭按钮引发的RoutedCommend,然后调用可选的回调,该回调使MVVM视图模型(或旧式控件类型代码)能够处理关联的视图模型,或执行任何其他整洁的代码你想做(或者确实取消关闭操作)。

在GitHub上的示例项目文件中,查找ClosingItemHandlerImpl并从那里开始工作。

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

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