MVVMの主な点は、ユーザーがViewModelデータを表示できる手段であること以外に、Viewの構成に関する厳しい規則がないことです。
ビューは、ページである必要はありませんが、コントロールであってもかまいません。したがって、必要に応じて複数のViewコントロールが表示される1つのページを持つことができます。後でもっと簡単に別のページに埋め込むことができるので、たとえページに表示される唯一のアイテムであっても、私はビューをコントロールとして持つことがよくあります。
MVVMパターンは、単にビジネス/コードロジックからUIを分離する手段です。 ViewModelクラスは、データの表示方法を気にせず、表示するデータのバインディングポイントやプロパティなどを提供するだけで、コード機能のトリガポイントも提供します。
コードビハインドファイルには決してコードが存在しないと主張する人もいますが、より実用的なアプローチが必要と考えている人もいます。ビューの視覚的な側面を制御するコードは問題なく、ビジネスロジックが侵入しているように見える場合があります。
ドラッグアンドドロップ機能を実装する場合、たとえば、コードの背後にコードが必要になります。これは実際には視覚的な側面なので問題はありませんが、ビジネスモデルによって特定のアイテムのみが指定されたり、指定された場所に最大数のアイテムがドロップされたりすると、ViewModelはビューがこれを実装するために使用します。そうすることで、Viewのコードがビジネスロジックを実装していると主張することができます。
元の質問に戻ってください。 Windows 8のメトロストライプアプリケーションのように動作するようにアプリケーションを実装しようとします。これは明らかにどのようにコード化されているかに関係しますが、そうしてもMVVMパターンに固執することは可能です。
+1 "実用的なアプローチ"。あなたは正しい、それは哲学の問題ではない... – dave