c# - 将参数从ConfirmNavigationRequest传递到Prism中的NavigationService

标签 c# wpf mvvm navigation prism

我有一个 View 模型,可从此 View 模型实现IConfirmNavigationRequestI 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外部访问参数?
  • 我找不到通过NavigationContextNavigationService访问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/

    相关文章:

    c# - 具有 "Refresh"条目的组合框

    c# - 以异步方式以编程方式将 UIElement 添加到 View

    c# - 哪个 C# 模式具有更好的性能来避免重复的事件处理程序?

    c# - 在 C# 中,如果抛出未处理的异常,Finally block 是否会在 try、catch、finally 中执行?

    C# 如何用正则表达式删除 XML/HTML 注释

    c# - 为什么我的属性(property)不知道直接对数据库所做的更改

    c# - ListView 的数据模板中的单选按钮组

    c# - 如何将单选按钮添加到菜单项?

    c# - 如何使 wpf 组合框拉出特殊属性

    WPF 图片 : How to download Sourceimage with Proxy Server?