public override async Task OnTargetViewUnloadedAsync(object sender, EventArgs e) { await base.OnTargetViewUnloadedAsync(sender, e); // This should only happen when the window only exposes an Unloaded event var vm = ViewModel; if (vm != null && !vm.IsClosed) { await CloseViewModelAsync(null); } ViewModel = null; }