我有一个类似的导航请求
regionManager.RequestNavigate("MainRegion", "Login");
,然后我必须在调用的视图模型中进行一些检查(例如检查文件是否存在)。如果检查失败,那么我必须取消导航请求。请告诉我该怎么做?
public LoginViewModel(IRegionManager rm)
{
if(!File.Exists("PathToFile"))
{
//cancel navigation
}
}
答案 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.
}