質問

誰かがMediatorパターンは、複数のインスタンスでどのように機能するかを説明することができます。

ビューで私のコード:

public MyView() {
    Mediator.Register("CloseWindow",()=>Close());
}

とViewModelにでます:

public SomeMethod() {
    Mediator.Notify("CloseWindow");
}

このビューのインスタンスが1つだけ存在している限り見つける働く - 。ViewModelにペア

私は複数のインスタンスとそれを解決する方法を教えてください。

役に立ちましたか?

解決

私は別の解決策を使用しています。 MYVIEWは、Closeメソッドが含まれているインタフェースIMyViewを実装しています。 MyViewModelオブジェクトには、ビューを関連付け、それは、インターフェイスを介して、Closeメソッドを呼び出すことができます。

あなたは具体的な例に興味があるなら、あなたが見ているかもしれません。

のWPFアプリケーションフレームワーク(WAF)

他のヒント

私はMediatorパターンのあなたの特定の実装がどのように動作するか分からないが、私の中であなただけの文字列よりも多くの情報を送ることができます。

public MyView() {
    Mediator.Register<CloseWindowMessage>(message =>
    {
        if (message.ViewModel == DataContext) Close();
    });
}    

とViewModelにでます:

public SomeMethod() {
    Mediator.Notify(new CloseWindowMessage(this));
}

この例では、ビューモデルは、ビューへのパラメータとして自分自身を通過します。ビューは、その後、メッセージは、そのビューモデルから送信されていることを確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top