ユーザーが WinForms メニュー項目をクリックすると、次のコードが実行されます。
// this is an Infragistics XamRibbonWindow
var someWpfInfragisticsWindow = new SomeWpfInfragisticsWindow();
ElementHost.EnableModelessKeyboardInterop(someWpfInfragisticsWindow);
someWpfInfragisticsWindow.Show();
表示されるウィンドウは Infragistics XamRibbonWindow です。また、DataSource がビュー モデルの IEnumerable プロパティにバインドされている Infragistics XamDataGrid も含まれます。
このウィンドウには、データベースからアイテムの新しいコレクションを取得し、前述のビュー モデル プロパティを設定する「検索」ボタンも含まれています。これにより、グリッドに新しいコレクションが表示されます。
後で、ユーザーはウィンドウを閉じることができます。クローズを処理するためのコードは作成されていません。
私の質問は次のとおりです。
- ウィンドウを閉じると、ウィンドウとそのコントロールが破棄され、それにバインドされたコレクションが GC 対応になります (コレクションへの他の参照が存在しないと仮定して)。
- 私が説明したことで潜在的なメモリの問題が見られる人はいますか? おそらく、グリッドによって表示されるアイテムが更新される方法 (またはその他のもの) でしょうか?