private async Task TryCloseAsync(OpenedViewModelInfo openedViewModelInfo) { if (!await openedViewModelInfo.ViewModel.CloseAsync()) { _toastPresenter.ShowAsync($"Cannot close {openedViewModelInfo.ViewModel.GetType().Name}", ToastDuration.Short); } }
private async Task TryOpenClearBackStackAsync(OpenedViewModelInfo openedViewModelInfo) { var navigationCompletedTask = openedViewModelInfo.ViewModel.ShowAsync(NavigationConstants.ClearBackStack.ToValue(true)).GetNavigationCompletedTask(); if (!await navigationCompletedTask) { _toastPresenter.ShowAsync($"Cannot reopen clear back stack {openedViewModelInfo.ViewModel.GetType().Name}", ToastDuration.Short); } }
private async Task TryOpenAsync(OpenedViewModelInfo openedViewModelInfo) { var navigationCompletedTask = openedViewModelInfo.ViewModel.ShowAsync().GetNavigationCompletedTask(); if (!await navigationCompletedTask) { _toastPresenter.ShowAsync($"Cannot reopen {openedViewModelInfo.ViewModel.GetType().Name}", ToastDuration.Short); } }
private async Task TryImmediateCloseAsync(OpenedViewModelInfo openedViewModelInfo) { if (!await openedViewModelInfo.ViewModel.CloseAsync(new DataContext { { NavigationConstants.ImmediateClose, true } })) { _toastPresenter.ShowAsync($"Cannot close {openedViewModelInfo.ViewModel.GetType().Name}", ToastDuration.Short); } }
public IList <MenuItem> GetMenuItems(OpenedViewModelInfo info) { if (info.ViewModel == null) { return(null); } var items = new List <MenuItem>(); Func <IViewModel, object, bool> canClose; if (!info.ViewModel.Settings.Metadata.TryGetData(ViewModelConstants.CanCloseHandler, out canClose) || canClose(info.ViewModel, null)) { items.Add(new MenuItem("Try Close", TryCloseCommand, info)); items.Add(new MenuItem("Try Immediate Close", TryImmediateCloseCommand, info)); } items.Add(new MenuItem("Try Reopen", TryOpenCommand, info)); if (info.NavigationType == NavigationType.Page) { items.Add(new MenuItem("Try Reopen Clear Back Stack", TryOpenClearBackStackCommand, info)); } return(items); }
public MenuItem(string name, ICommand command, OpenedViewModelInfo commandParameter) { Name = name; Command = command; CommandParameter = commandParameter; }