0

すべてLayoutAwarePageから派生した複数のページで構成される Metro アプリがあります。それらとの間のナビゲーションを実装しました。これは魅力のように機能します。私が今やりたいことは、たとえば次のように、これらのビュー間で共通のデータを共有することです。

  • モデルへのアクセス、名前を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 として 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 に答える