关于WPF里内存泄漏的问题

场景 我写的WPF程序会根据用户操作频繁读取本地文件,并打开子窗口,子窗口的控件会引用这些文件转换后的数据。
问题 调试和运行该程序的时候,发现了可怕、大量的内存泄漏:子窗口关闭后,这些被引用的数据没有被垃圾回收;当打开下一份文件,会开辟一块新的空间来存储新的数据。
现象 我在调试时截取了快照,如下:

img

尝试解决 为了解决内存泄漏的问题,我对子窗口外逻辑中的事件/委托都进行了注销或取消订阅,同时强制GC回收,但是!没有用!它还在内存里!
想请问有没有人知道,关闭窗口时,WPF不会对窗口的所有内容进行销毁吗?还有如何解决这个内存泄漏问题哇?

【已解决】
根本原因:虽然子窗口被关闭了,但只有在整个程序退出后,子窗口才被析构并被回收,关闭子窗口时需要销毁窗口对象;
解决方法:所有窗口、控件的基类实现IDisposable,通过重写Dispose方法,逐一把窗口或控件中的内存对象置空销毁。