如何在 WPF/Prism 中通过 Ribbon 从 View 传递参数?

How to pass parameter from View through Ribbon in WPF/Prism?

我确实成功地将一个 RibbonControl 放入了我的 shell-view(我使用的是 PRISM)并且当一个 Ribbon 控件被点击时我也能够导航到不同的视图。

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

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

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

非常感谢!

N.

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

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

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;
    }
}