0

それぞれにScrollViewerを含む2つの別々のビューがあります。スクロールの観点から、一方を他方に奴隷にしたい。(ビューはPRISMを使用して注入されています)

それらが同じビューにある場合、私はこれを簡単に行うことができます。しかし、私は孤立したビューの間でそれを行うのに行き詰まっているようです。(ビューは正当な理由で孤立しています...まあ私は思います!)

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

ただし、MVVMに違反せずにViewModelから2番目のScrollViewerを駆動する方法を見つけるのに苦労しています。

確かに私は明らかな何かを見逃しているので、正しい方向への突き出しをいただければ幸いです。

ありがとう

4

1 に答える 1

1

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

Prismを使用することをお勧めします。

2番目のビューモデルはイベントを受信すると、ビューが直接消費できる別のイベントを使用して、またはプロパティを介して(その呼び出しにバインドできる添付プロパティを使用してScrollViewer.ScrollToVerticalOffset)イベントをビューに公開できます。

于 2012-05-13T22:25:59.630 に答える