3

ViewModels 間のメッセージングを実装しようとしています。私の概念実証コードは次のとおりです。

RxApp.MessageBus.Listen<int>("test")
    .Subscribe(i => MessageBox.Show(i.ToString()));    

RxApp.MessageBus.SendMessage<int>(42, "test");

私の単体テストは正常に実行されるため、スケジューリングの問題である可能性があると考えました。スケジューラを手動で設定しました:RxApp.DeferredScheduler = DispatcherScheduler.Instance;

とにかく正しいインスタンスに設定されていたので、予想どおり、変更はありません。メッセージに登録できます。私はまったく何も受け取りません:/ 空のメッセージ コントラクトを使用しても、何も変わりません。

エミュレーターとデバイスの両方で試してみました (Mango SDK Refresh / Mango Build 7712)

ここの誰かが私を助けてくれることを願っています:)どんなヒントでも大歓迎です。

4

2 に答える 2

3

これは MessageBus のバグだと思います。

**私はそれを調べます:)

于 2011-08-11T05:57:31.587 に答える
-1

スケジューラで行うのは自明ではないことだと仮定した私の間違いです:)

問題は、WP7/SL で Dictionary キーとして使用されている Tuple クラスが、有用なEquals()オーバーライドを実装していないことでした。

登録されたサブジェクトを検索するときに、ディクショナリは一致を返しませんでした。

GetHashCode()また、カスタム実装に置き換える必要があります。

于 2011-08-23T14:10:54.820 に答える