private void ShowWindowDialog_Closed(object a_sender, EventArgs a_e) { Window window = (Window)a_sender; IWindowViewModel viewModel = (IWindowViewModel)window.DataContext; viewModel.WindowClosed(); viewModel.WindowView = null; window.Closing -= ShowWindowDialog_Closing; window.Closed -= ShowWindowDialog_Closed; Action closeAction = window.Tag as Action; if (closeAction != null) { closeAction(); window.Tag = null; } // Remove the VM. IViewFor viewFor = window as IViewFor; if (viewFor != null) { viewFor.ViewModel = null; } }