当用户单击WinForms菜单项时,将执行以下代码:
// this is an Infragistics XamRibbonWindow
var someWpfInfragisticsWindow = new SomeWpfInfragisticsWindow();
ElementHost.EnableModelessKeyboardInterop(someWpfInfragisticsWindow);
someWpfInfragisticsWindow.Show();
显示的窗口是一个基础结构 XamRibbonWindow。它还包含一个Infragistics XamDataGrid,其数据源绑定到视图模型上的IEnumerable属性。
该窗口还包含一个"搜索"按钮,该按钮将从数据库中检索新的项目集合,并设置前面提到的视图模型属性。这会导致网格显示新集合。
稍后,用户可以关闭窗口。没有编写代码来处理收盘价。
我的问题是:
- 关闭窗口是否会释放窗口及其控件并使绑定到它的集合可 GC(假设不存在对集合的其他引用)?
- 有没有人看到我所描述的内容有任何潜在的内存问题?也许与网格显示的项目的更新方式(或其他任何内容)有关?
窗口时,如果您尚未保留对它的引用,它应该可用于垃圾回收。 从提供的详细信息来看,我没有看到这种方法有任何内存问题。
请注意,Infragistics 确实有一些静态类,这些类将在您关闭窗口后保留。
如果您在使用 Infragistics 控件时确实遇到内存泄漏问题,并且认为控件可能是原因,您应该联系 Infragistics 寻求帮助,以确定泄漏的原因。 有链接可以在论坛上发布或从获取帮助页面提交支持案例。