2010-12-06 7 views

答えて

2

:)

Views.MyView vw = new Views.MyView(); 
vw.MyParameter = ... ; 
this.ContentFrame1.Content = vw; 

それとも、グローバル変数を使用しますが、賢明にそれらを使用することができ後期の答えを、しかし:あなたのオブジェクトへのパブリックプロパティを公開し、ContentFrameにロードする前にそれを設定することができ、そのメソッドを使用して私も答えを見つけようとしていました。うまくいけば、これはあなたのために働くが、それはVBである。うまくいけば、それは十分に簡単です。 ITRSClassというクラスがあります。私のMainPage.xaml.vbでは、私が持っている:

Public Shared myClass As New ITRSClass 

これはまた、例えば任意のオブジェクトまたは変数が考えられます。

Public Shared myString as New String = "My New String" 

、その後、私は(私の場合で呼び出さ開く新しいページから

Dim mySharedClass = MainPage.myClass 

か::

Dim mySharedString = MainPage.myString 
Setup.xaml.vb)、私はこのような、そのオブジェクトまたは変数への参照を取得することができます

私の場合は、私のMainPageのListBoxをmy(Setup.xaml.vb)ページの結果に基づいて更新するために使用するクラスのObservableCollectionがあります。私はこれを学んだのはここ

は - より良い説明を:Dave Corun's Blog

+0

静的なものは良い=) – Seva

1

「ナビゲート」を使用する代わりに、手動でページを作成し、ContentFrameのコンテンツプロパティを設定することができます。

+0

が – Seva

+0

のx =あまり理解していなかったために、あなたがモデルクラスの穴にデータを聞かせて、グローバル変数は、.NETに存在しないことを除いて、存在しないと思いますか? = u – Seva

+0

実際には、静的静的プロパティを使用して静的静的クラスを作成することで、.NETで何らかの種類のグローバル変数を作成できます。 – danbord

1

オブジェクトを渡して、心の中でオブジェクトを渡すことにつながる可能性のある問題保つためには良い方法はありません - このフレームは、ブラウザに統合されている場合はは、 (デフォルトでは、ブラウザのバック/フォワードボタンがフレームと連動します)、ユーザのブラウザに表示されるURLが「/PlayerLost.xaml」で終わることを意味します。

そのURLがコピー/貼り付け(またはお気に入りが作成されたなど)、ユーザーがページに戻ると、移動したいオブジェクトはそこに表示されません(新しいアプリインスタンスなので)。

このような状態のクエリ文字列を使用する方がよいでしょう。なぜなら、状態はURLにあり、アプリケーションは通常の実行中やディープリンク経由で取得することができるからです。

渡す必要のあるデータが複雑すぎて、クエリ文字列が表現できない場合は、オブジェクトを「グローバル」のどこかに格納します(Applicationクラスにプロパティを追加するのが通常の方法です)結果のページからアクセスします。このページは、このデータが存在しない(復元のシナリオの場合)ように復元力がなければなりません。

+0

+1静的戦略。 – Seva

0

私がしていることは非常に簡単です:(VBの例) app.xamlにあります。VBファイルは、ファイルを開いて、あなたが表示されます。

部分公開クラスのApp 継承アプリケーション

ただその後

のStringとして 部分公開クラスのApp 継承アプリケーション 公開共有wnameを追加します変数を使用するページは、app.wnameを呼び出すだけです。

完了!

ハッピーコーディング!

アーサー

関連する問題