ElementHost的WPF表单和网格绑定方法存在潜在的内存问题?

时间:2012-04-30 23:37:27

标签: wpf memory infragistics elementhost

当用户单击WinForms菜单项时,将执行以下代码:

 // this is an Infragistics XamRibbonWindow
var someWpfInfragisticsWindow = new SomeWpfInfragisticsWindow();
ElementHost.EnableModelessKeyboardInterop(someWpfInfragisticsWindow);
someWpfInfragisticsWindow.Show();

显示的窗口是Infragistics XamRibbonWindow。它还包含一个Infragistics XamDataGrid,其DataSource绑定到视图模型上的IEnumerable属性。

该窗口还包含一个“搜索”按钮,该按钮将从数据库中检索新的项目集合,并设置前面提到的视图模型属性。这会导致网格显示新集合。

稍后,用户可以关闭窗口。没有编写代码来处理关闭。

我的问题是:

  1. 关闭窗口是否处理窗口及其控件并使集合绑定到GC-able(假设不存在对集合的其他引用)?
  2. 有没有人看到我所描述的任何潜在的记忆问题?也许网格显示的项目更新(或其他任何方式)?

1 个答案:

答案 0 :(得分:1)

当窗口关闭时,如果您没有引用它,它应该可用于垃圾收集。根据提供的详细信息,我没有看到这种方法存在任何内存问题。

请注意,Infragistics确实有一些在关闭窗口后仍会保留的静态类。

如果使用Infragistics控件确实存在内存泄漏问题,并认为控件可能是原因,您应该联系Infragistics以获取帮助以确定泄漏原因。可以在论坛上发布帖子或从get help page提交支持案例。