我有一个 View 模型,可从此 View 模型实现IConfirmNavigationRequest
和I need to pass information到我拥有的导航代理类,该类未与任何特定 View 或 View 模型耦合。
相反,导航代理类可以访问感兴趣的IRegion
以及IRegionNavigationService
。
ViewModel向Uri添加参数
public override void ConfirmNavigationRequest(NavigationContext navigationContext,
Action<bool> continuationCallback)
{
_verificationCount++;
navigationContext.Parameters.Add("Count", _verificationCount.ToString());
continuationCallback(Verify());
}
需要访问传递的参数的导航代理
// Some method
_region.RequestNavigate(new Uri(_nextView, UriKind.Relative), NavigationCallback);
private void NavigationCallback(NavigationResult navigationResult)
{
if (navigationResult.Error == null)
{
if (navigationResult.Result == true)
{
// Need to evaluate the Count argument here
// int count = ...
// if (count < 5)
QueueNextView();
} else
{
Debug.WriteLine("Navigation Cancelled");
}
}
else
{
Debug.WriteLine("Navigation Error");
}
}
如何通过Region或NavigationService在ViewModel外部访问参数?
NavigationContext
或NavigationService
访问Region
的方法吗? _region.NavigationService.Journal.CurrentEntry.Uri.OriginalString
,但是它没有显示任何查询信息,只是显示了注册的 View 字符串名称最佳答案
Agustin Adami provided the answer here:
navigationResult.Context.Parameters["Count"];
关于c# - 将参数从ConfirmNavigationRequest传递到Prism中的NavigationService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767366/