【问题标题】:How to remove single view from Prism Navigation Journal如何从 Prism Navigation Journal 中删除单个视图
【发布时间】:2017-04-29 02:49:36
【问题描述】:

我在 WPF 应用程序上使用 Prism 导航(版本 6.3.0),

我有 3 个视图:ViewAViewBViewC em>, 通过 ViewB 从 ViewA 导航到 ViewC 后,我想从 Navigation Journal 中删除 ViewB,调用 GoBack 方法并直接导航到 ViewA

第一次导航

ViewA -> ViewB -> ViewC

第二次导航(返回)

ViewC -> ViewA

我尝试通过以下方式实现方法OnNavigatedFrom,但它不起作用:

public override void OnNavigatedFrom(NavigationContext navigationContext)
{
    this.NavigationJournal.Clear();
    var viewAEntry = new RegionNavigationJournalEntry() { Uri = new Uri(ContractNames.Medics, UriKind.Relative) };
    this.NavigationJournal.RecordNavigation(viewAEntry);
    base.OnNavigatedFrom(navigationContext);
}

我还检查了 Github 上报告的问题(30384) 但似乎没有解决方案。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# wpf prism


    【解决方案1】:

    这还没有内置到框架中,但是如果您按照此评论中的说明进行操作,您应该能够实施解决方案。

    https://github.com/PrismLibrary/Prism/issues/30#issuecomment-227491454

    https://github.com/PrismLibrary/Prism/issues/30#issuecomment-227679365

    这应该会让你朝着正确的方向前进。

    【讨论】:

    • 感谢@Brian,我尝试应用建议的解决方案,如果我们将 MyRegionNavigationService 的构造函数参数更改为 IMyRegionNavigationJournal 意味着更改具有或使用 IRegionNavigationJournal 类型的此类的所有属性到 IMyRegionNavigationJournal,它与 IRegionNavigationService 的实现不匹配,该实现具有 IRegionNavigationJournal 的所有属性。我不知道如果我使用 IMyRegionNavigationJournal 创建一个自定义 IMyRegionNavigationService 接口会解决问题吗?还是会影响未修改的 Prism 类中的其他用法?
    • 您不会更改任何 ctor 定义。您只需使用容器的 Prism 接口注册您的具体类。 Container.RegisterType<IRegionNavigationJournal, MyNavJournal>(make singleton)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多