如果一个带有usercontrol的窗口被关闭,那么我应该在usercontrol中调用一个方法,即除了处理usercontrol之外什么都没有。我该怎么做?
答案 0 :(得分:1)
如果您想知道垃圾收集器何时收集UserControl
,请使用此:
~UserControl1()
{
//...
}
如果您想知道何时从其父级卸载UserControl
,请在userControl上使用Unloaded
事件
注意:与Window
不同,UserControl
无法关闭。
答案 1 :(得分:0)
由于contols没有Closing / Closed事件,所以它不像重写Dispose那么简单。在某些情况下可能不会调用处理。
您可以覆盖控件的WndProc并捕获WM_CLOSE事件。
答案 2 :(得分:-1)
供将来参考。
我处理了我的主窗口加载的用户控件,如下所示:
<UserControl x:Class="MyApp.Class" ... Unloaded="UserControl_Unloaded"></UserControl>
private void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
((MyVM)this.DataContext).Dispose();
}
Unloaded
是任何视图中可用的事件。