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

时间:2016-10-05 14:53:45

标签: wpf prism ribbon

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

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

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

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

非常感谢你!

<磷>氮

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

布莱恩,非常感谢你指出我正确的方向。我完全走错了路(寻找一种如何在shell视图中读取&amp;传递参数的方法)。

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

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