public static async Task <object> ShowAsync(object model, string dialogName) { var view = Instance.ViewManager.CreateAndBindViewForModelIfNecessary(model); var session = DialogHost.GetDialogSession(dialogName); var sessionContext = (session?.Content as FrameworkElement)?.DataContext; if (model.Equals(sessionContext)) { return(null); } if (DialogHost.IsDialogOpen(dialogName)) { DialogHost.Close(dialogName); } (model as IScreenState)?.Activate(); var result = await DialogHost.Show(view, dialogName).ConfigureAwait(true); (model as IScreenState)?.Deactivate(); return(result); }