閉鎖時に私の子ウィンドウがアンロードされるようにするにはどうすればよいですか?閉鎖時に子ウィンドウをアンロードする(silverlight mvvm)
私はviewmodelからchildwindowを開きますが、閉じた後もコンボボックスではselectionchangedのようなイベントが発生します。
子ウィンドウは、呼び出されたのと同じビューモデルを使用しているので、イベントが発生する理由を説明しています。 itemssourcesはまだ有効です。
しかし、閉鎖されているときは、子ウィンドウを「処分」したいと思います。
私はこの(後ろのデフォルトのビューのコード)のようなクローズハンドラを追加しようとしました:
private void OnLaunchEditItem(ItemMessage msg)
{
var editWnd = new EditItemWindow();
editWnd.Closed += new EventHandler(editWnd_Closed);
editWnd.Show();
}
void editWnd_Closed(object sender, EventArgs e)
{
sender = null;
}
んsucesss ..
をそれでは、私が今やっていることからのItemsSourceを削除することです私のように見える子ウィンドウコントロール...この問題に対する理想的な解決策ではありません。閉じてもメモリからすべてを処分することは可能でなければならないのですか? (Childwindow "ビュー" コードビハインド)
private void OKButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
combobox1.ItemsSource = null;
combobox2.ItemsSource = null;
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
combobox1.ItemsSource = null;
combobox2.ItemsSource = null;
}
http://stackoverflow.com/questions/7036873/when-to-dispose-viewmodel-in-mvvm-light – Kman