如果带有用户控件的窗口正在关闭,那么我应该在用户控件中调用一个方法,即只有在释放用户控件时才调用。我怎么做?
问问题
4638 次
3 回答
3
如果您想知道垃圾收集器何时收集,请UserControl
使用:
~UserControl1()
{
//...
}
如果您想知道何时UserControl
从其父级卸载,Unloaded
请在 userControl 上使用事件
注意:与 a 不同Window
, aUserControl
不能关闭。
于 2012-10-26T11:41:56.860 回答
0
由于 contols 没有 Closing/Closed 事件,它不像重写 Dispose 那样简单。在某些情况下可能不会调用 Dispose。
您可能会覆盖控件的 WndProc 并捕获 WM_CLOSE 事件。
于 2012-10-26T11:48:14.757 回答
-1
供其他人将来参考..
我处置了我的主窗口加载的用户控件,如下所示:
<UserControl x:Class="MyApp.Class" ... Unloaded="UserControl_Unloaded"></UserControl>
private void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
((MyVM)this.DataContext).Dispose();
}
Unloaded
是任何视图上可用的事件。
于 2015-08-27T12:44:39.257 回答