0

グリッド内のフレーム内に4つのページを保持する単一のウィンドウで構成されるWPFを使用するC#アプリケーションがあります。メインウィンドウは、ソケットを介してメッセージを受信します。これらのメッセージを適切なページに送信して処理しようとしていますが、1)メッセージを正しく参照する方法、および2)メッセージをページに渡す方法、またはページの関数の1つを呼び出してメッセージを処理する方法がわかりません。必要に応じて、ウィンドウ、グリッド、フレーム、ページはxamlで作成されます。

私が作成した同様のWindowsフォームアプリケーションでは、コールバックにデリゲートを使用しました。メインウィンドウはメッセージを受信し、フォームのデリゲートを呼び出します。これは次のようになります。

Invoke(myFormInstance.myFormDelegateFunction, myMessage);

myFormInstance.MdiParentがこのウィンドウに設定された場所。

私は基本的に、WPFに相当するもの、またはおそらくそれを行うためのより良い方法を見つけようとしています。WPFディスパッチャーを調べました。これは、ページコンポーネントに直接アクセスする方法である可能性がありますが、ページ自体がメッセージを処理し、どのコンポーネントがどのように更新されるかを決定する必要があります。

何かアドバイス?コーディネーターはどういうわけかこれに対する答えですか?

ありがとう。

4

1 に答える 1

3

MVVM Light Toolkit、特にMessengerオブジェクトを使用しようと思います。それはクラス間のコミュニケーションを可能にします。基本的に、送信者はメッセージに関連するデータを含むメッセージを通知するだけで、その特定のメッセージに登録されているクラスは、選択したとおりにメッセージを処理できます。したがって、ソケットメッセージのメインの受信者は、ソケットメッセージを受信したことを通知し、ソケットメッセージをデータとして添付できます。

http://mvvmlight.codeplex.com/

于 2012-06-14T20:44:36.893 に答える