最近我经常使用匿名方法,所以我想知道我是否喜欢:
比如说,在我的MainWindow类中,我有:
ChildWindow myChildWindow = new ChildWindow();
myChildWindow.Closing+= (o, e) => {
//DoSomething
rootGrid.Children.Remove(o as ChildWindow);
}
this.rootGrid.Children.Add(myChildWindow );
myChildWindow.Show();在这种情况下,我不能从.Closing中删除事件处理程序,因为它是用匿名方法定义的。
此ChildWindow是否仍由GC收集?
发布于 2012-02-09 01:36:40
是。
您所要做的就是创建一个带有闭包对象的委托,并从子窗口中引用它。
您不会创建对子窗口的任何额外引用。
https://stackoverflow.com/questions/9198504
复制相似问题