如何確保我的子窗口在關閉時被卸載?關閉時卸載子窗口(silverlight mvvm)
我打開我的viewmodel中的子窗口,但是在它關閉之後,它仍然會像comboboxes上的selectedchanged事件觸發。
子窗口使用與它被調用相同的viewmodel,所以我想這解釋了爲什麼這些事件正在被解僱。 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