棱镜取消导航WPF

时间:2020-08-03 10:55:25

标签: c# wpf mvvm prism

我有一个类似的导航请求

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

,然后我必须在调用的视图模型中进行一些检查(例如检查文件是否存在)。如果检查失败,那么我必须取消导航请求。请告诉我该怎么做?

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

1 个答案:

答案 0 :(得分:0)

您必须在视图模型中实现IConfirmNavigationRequest才能启用取消功能。在ConfirmNavigationRequest方法中,将true传递到continuationCallback以继续导航,否则将false

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

   // ...other members.
}