.net 从TabControl中删除时,UserControl作为TabItem内容的清除代码
我有一个WPF.net 从TabControl中删除时,UserControl作为TabItem内容的清除代码,.net,wpf,tabcontrol,dispose,dispatcher,.net,Wpf,Tabcontrol,Dispose,Dispatcher,我有一个WPFUserControl,它作为Content添加到TabItem中。TabItem被添加到TabControl的Items集合中。选项卡项的标题包含一个标签和一个按钮。单击按钮可从TabControl的Items集合中删除TabItem。所以UserControl的引用不再存在了。我有一些清理代码要在删除TabItem时为UserControl运行 我在UserControl中寻找Dispose方法,但是没有这样的方法可以重写 此外,我还尝试使用Dispatcher.Shutdow
UserControl
,它作为Content
添加到TabItem
中。TabItem
被添加到TabControl
的Items
集合中。选项卡项
的标题
包含一个标签
和一个按钮
。单击按钮可从TabControl的Items集合中删除TabItem。所以UserControl的引用不再存在了。我有一些清理代码要在删除TabItem时为UserControl运行
我在UserControl中寻找Dispose
方法,但是没有这样的方法可以重写
此外,我还尝试使用Dispatcher.ShutdowStarted事件,但这也不起作用。您可以扩展
UserControl
并添加一个方法来清理控件。从以下位置从TabControl
中删除TabItem
时,可以调用此方法:
private void Button_Click(object sender, RoutedEventArgs e)
{
ExtendedUserControl control = (ExtendedUserControl)tabItem.Content;
control.CleanUp();
tabControl.Items.Remove(tabItem);
}
或者,您可以将清理方法添加到数据绑定到用户控件的数据类中:
private void Button_Click(object sender, RoutedEventArgs e)
{
UserControl control = (UserControl)tabItem.Content;
YourDataClass data = (YourDataClass)control.DataContext;
data.CleanUp();
tabControl.Items.Remove(tabItem);
}