【问题标题】:How to pass parameter from View through Ribbon in WPF/Prism?如何通过 WPF/Prism 中的功能区从视图传递参数?
【发布时间】:2016-10-08 00:49:37
【问题描述】:

我确实成功地将 RibbonControl 放入了我的 shell 视图(我正在使用 PRISM),并且当单击 Ribbon 控件时,我还能够导航到不同的视图。

现在,我遇到了以下问题:如何将参数从一个视图传递到另一个视图?我知道如何通过 CommandParameter 执行此操作,但问题是我在 shell 视图模型中。

更明确地说:例如在第一个视图中,用户从列表视图中选择一行(包含记录 ID)。现在,我想单击 RibbonButton 并使用视图 1 中的参数打开第二个视图。

有人能指出正确的方向吗?

非常感谢!

N.

【问题讨论】:

  • 您可以使用导航参数并使用 INavigationAware 界面..
  • 显示一些关于如何导航的代码。

标签: wpf prism ribbon


【解决方案1】:

使用 IRegionManager.RequestNavigate 进行导航,然后让 ViewModel 实现 INavigationAware。在此处阅读文档:

https://github.com/PrismLibrary/Prism/blob/master/Documentation/WPF/60-Navigation.md

【讨论】:

    【解决方案2】:

    Brian,非常感谢您为我指明了正确的方向。我完全走错了路(寻找一种如何在 shell 视图中读取和传递参数的方法)。

    而且解决方案是如此清晰和美丽:

    public void OnNavigatedFrom(NavigationContext navigationContext)
    {
        if (SelectedItem != null)
        {
            BGKO data = new BGKO();
            data.ID = SelectedItem.ID;
            data.NO = SelectedItem.NO;
    
            navigationContext.NavigationService.Region.Context = data;
        }
    } 
    

    【讨论】:

    • 这就是 Prism 过去的样子。考虑接受他的正确答案。
    猜你喜欢
    • 2017-01-24
    • 2011-06-04
    • 1970-01-01
    • 2021-02-21
    • 2021-09-20
    • 1970-01-01
    • 2023-01-18
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多