MVVMパターンでよく問題となるのが、画面遷移 の問題です。 単一画面であれば、View と ViewModel をバインド機構を使って疎結合にできるため、なんら問題は生じませんが、画面遷移を行う場合、ViewModel から Window を起動すると View - ViewModel 間で密結合が発生します。 また View のコードビハインドで画面を起動すると、実装が複雑化するのに加え、View に依存する分 MVVM の利点であるテスト容易性が失われます。疎結合を維持しテスト容易性を保持したまま、画面遷移を行う方法はあるのでしょうか?そこで便利なのが MVVM インフラである Livet のメッセンジャー機能です。 これは Livet 特有の機能でして、ViewModel から View に対し各種メッセージを送信でき、またどのビューを対象とするか指定する必要もなく、疎結合を保持し
![Livetによる画面遷移と選択要素受け渡しのサンプル - 周回遅れのブルース](https://cdn-ak-scissors.b.st-hatena.com/image/square/41be0da45224879f6d8bb82cff166f6878caf585/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fh%2Fhilapon%2F20150622%2F20150622154447.png)