2012-05-13 9 views
0

それぞれに2つのビューがあり、それぞれにScrollViewerが含まれています。私はスクロールの面で互いにスレーブしたいです。 (ビューはPRISMを使用して注入されています)コントロールを別々のビューにリンクする

同じビューであれば、これを簡単に行うことができます。しかし、私は孤立した意見の間にそれをやっているようだ。 (良い理由のためにビューが分離されています...よく考えています)

私がしたいと思うのは、ScrollViewer 'ScrollChangedEvent'をViewModelレイヤーにエコーしてから、いくつかのリンクサービスを使用してメッセージを2番目のViewModel。

しかし、私はMVVMに違反することなくViewModelから第2 ScrollViewerをどのように動かすかを考えるのに苦労しています。

確かに私は何かが明らかに欠けているので、適切な方向に押していただければ幸いです。

おかげ

答えて

1

これについて移動する方法はいくつかあります。 1つは、あなたが示唆したように、スクロール変更をビューモデルに転送することです。そこから、(PrismのEvent Aggregatorのような)ルーズなpub/subメカニズム、または両方のビューモデルで使用可能な共有オブジェクトを使用して、あるビューモデルから別のビューモデルにイベントを送信することができます。

私はPrismを使用することをお勧めします。 (あなたがそれに結合することができ、添付プロパティを使用してScrollViewer.ScrollToVerticalOffsetを呼び出す)

第2のビューモデルがイベントを受信すると、それはビューを直接消費することができる別のイベントを使用してビューに、またはプロパティを使用して公開することができますが

+0

合意2番目のビューモデルを取得して2番目のビューのコントロールに投稿すると、それは私を混乱させます。すなわち、あなたが言及するプロセスの最後の部分です。 – rjw

+0

私は自分の答えを更新しました。それが役に立てば幸い! –

+0

今すぐ、お返事いただきありがとうございます。しかし、賢明な音。 – rjw

関連する問題