Призма отменяет навигацию WPF - PullRequest
0 голосов
/ 03 августа 2020

У меня есть запрос на навигацию, например

regionManager.RequestNavigate("MainRegion", "Login");

, и после того, как мне нужно выполнить некоторые проверки (например, проверка наличия файла) в вызываемой модели представления. Если проверка не удалась, я должен отменить запрос навигации. Подскажите, пожалуйста, как мне это сделать?

public LoginViewModel(IRegionManager rm)
{ 
    if(!File.Exists("PathToFile")) 
    {
        //cancel navigation
    }
}

1 Ответ

0 голосов
/ 03 августа 2020

Вы должны реализовать IConfirmNavigationRequest в своей модели представления, чтобы включить отмену. В методе ConfirmNavigationRequest передайте true в continuationCallback, чтобы продолжить навигацию, иначе false.

public class LoginViewModel : BindableBase, IConfirmNavigationRequest
{
   public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
   {
      continuationCallback(File.Exists("PathToFile"));
   }

   // ...other members.
}
...