【问题标题】:Prism's ViewModelLocator.AutoWireViewModel always creates a new instancePrism 的 ViewModelLocator.AutoWireViewModel 总是创建一个新实例
【发布时间】:2014-09-01 09:50:20
【问题描述】:

我们正在尝试使用当前的 IoC 提供程序 Ninject 首先将带有 DataTemplates 项目的普通旧 ViewModel 转换为 Prism 世界。

我创建了 IServiceLocater 和 Bootstrapper 的实现。使用区域导航和注册视图工作正常。 ViewModelLocator.AutoWireViewModel 也可以很好地设置我们的 ViewModel。我面临的问题是,即使我将IRegionMemberLifetime.KeepAlive 设置为true 并在查询IsNavigationAware.IsNavigationTarget 时返回true,视图模型也永远不会重用。简单地在日志中浏览会导致 Prism 解析 ViewModel 的新实例。有没有人有关于如何正确使用 Ninject 和 Prism 的参考实现,还是我应该放弃并切换到 Unity?

【问题讨论】:

  • 那么你有一个统一的例子吗?我认为将其转换为有效的 prism-ninject 配置相当容易......

标签: ninject prism


【解决方案1】:

考虑用于导航的视图和视图模型需要具有与导航 Uri 的基本名称相同的短类或长类名称。

对我来说出了问题的是我将 StartView 链接到名称“Start”。这意味着 IRegion 历史记录中的 StartView 不被视为导航目标“Start”的导航目标。

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 2012-06-20
    • 2023-03-31
    • 2021-11-25
    • 2013-03-29
    • 2012-06-22
    相关资源
    最近更新 更多