bool CanRemove(object item, NavigationContext navigationContext) { bool canRemove = true; var confirmRequestItem = item as IConfirmNavigationRequest; if (confirmRequestItem != null) { confirmRequestItem.ConfirmNavigationRequest(navigationContext, result => { canRemove = result; }); } var frameworkElement = item as FrameworkElement; if (frameworkElement != null && canRemove) { IConfirmNavigationRequest confirmRequestDataContext = frameworkElement.DataContext as IConfirmNavigationRequest; if (confirmRequestDataContext != null) { confirmRequestDataContext.ConfirmNavigationRequest(navigationContext, result => { canRemove = result; }); } } return(canRemove); }
bool CanRemoveItem(object item, IRegion region) { bool canRemove = true; var context = new NavigationContext(region.NavigationService, null); var confirmRequestItem = item as IConfirmNavigationRequest; if (confirmRequestItem != null) { confirmRequestItem.ConfirmNavigationRequest(context, result => { canRemove = result; }); } FrameworkElement frameworkElement = item as FrameworkElement; if (frameworkElement != null && canRemove) { IConfirmNavigationRequest confirmRequestDataContext = frameworkElement.DataContext as IConfirmNavigationRequest; if (confirmRequestDataContext != null) { confirmRequestDataContext.ConfirmNavigationRequest(context, result => { canRemove = result; }); } } return(canRemove); }