0

我有一个由多个页面组成的 Metro 应用程序,所有页面都来自LayoutAwarePage。我已经实现了往返它们的导航。这就像一个魅力。我现在要做的是在这些视图之间共享公共数据,例如:

  • 访问模型,我们将其命名为MyModel
  • 控制器的一个实例,我们将其命名为MyController
  • 常见的业务逻辑,我们把它命名为MyLogic

过去,我习惯于通过构造函数“注入”这些依赖项。这现在不可能了(对吧?)。我该如何做到这一点,否则请记住我想避免:

  • 单例(因为测试)
  • 公共静态属性(类似于单例)

可以将某种上下文对象传递给 Frame.Navigate() 方法吗?有人有好的建议吗?

PS 我想避免使用像 MVVM light 或 Cocoon 这样的框架。

干杯!

4

2 回答 2

0

听起来您正在寻找非常简单的东西。如果是这种情况,我只需向 App.xaml.cs 添加一个属性。

您可以使用 (App.Current as App).MyProperty 从应用程序中的任何位置设置/获取该属性。非常蛮力,但它的工作原理。

我也看到了相同的方法,但是将主容器分配给 App.xaml.cs 属性,然后是带有 getContainer() 方法的扩展方法 - 只是为了减少您必须编写的次数(App.Current as App) .

于 2012-08-21T01:08:16.880 回答
0

好的,我想我为我找到了一个很好的解决方案 [1]。它仍然不是我想要的,因为它使用了 MVVM 轻量级工具包及其 Messenger 概念 - 但它很干净。

[1] http://forums.silverlight.net/p/200771/468507.aspx

于 2012-08-21T10:49:45.953 回答