我有一个继承自UserControl的类。我在WPF TabControl中将此类显示为选项卡。标签有一个小x,可以通过单击关闭。我需要一种方法来在销毁标签之前做一些清理代码。
我不相信我可以使用Unloaded事件来执行此操作,因为当UserControl被销毁时会调用Unloaded事件,而当您单击另一个选项卡时也会调用它。
关于如何处理这种情况的任何想法?
编辑: 这是更多信息。 在我的UserControl类中,我有一个我正在使用的第三部分控件。基本上是图形控件。我想运行几行代码以确保没有内存泄漏。如果您想了解更多信息,那么这将是更多地了解它的网址:
答案 0 :(得分:2)
您可以在dragablz上的GitHub TabControl中查看我的方式。
基本上TabControl侦听从关闭按钮引发的RoutedCommend,然后调用可选的回调,该回调使MVVM视图模型(或旧式控件类型代码)能够处理关联的视图模型,或执行任何其他整洁的代码你想做(或者确实取消关闭操作)。
在GitHub上的示例项目文件中,查找ClosingItemHandlerImpl并从那里开始工作。
http://github.com/ButchersBoy/Dragablz/blob/master/DragablzDemo/BoundExampleModel.cs
ClosingItemHandlerImpl从XAML绑定,选项卡控件将在删除选项卡之前调用它。