С MVVM дело в том, что нет жестких правил относительно того, что составляет представление, кроме того факта, что это средство, с помощью которого пользователь может просматривать данные ViewModel.
Представление не обязательно должно быть страницей, но может быть элементом управления.Таким образом, вы можете иметь одну страницу, на которой отображается много элементов управления View, если хотите.Довольно часто в качестве элементов управления отображаются «Виды», даже если они должны быть единственным элементом, отображаемым на странице, так как это позволяет мне более легко встраивать их в другие страницы позднее.
Шаблон MVVMчисто средство отделения пользовательского интерфейса от логики бизнес-кода.Класс ViewModel не заботится о том, как отображаются его данные, он просто предоставляет точки привязки, свойства и т. Д. Для отображения данных и точки запуска для функции кода.
Некоторые люди будут настаивать на том, что естьникогда не код в коде позади файлов, но я думаю, что требуется более прагматичный подход.Код, который управляет визуальными аспектами представления, хорош, и бывают случаи, когда вмешивается то, что выглядит как бизнес-логика.
Например, при реализации функциональности перетаскивания в коде, который находится позади, потребуется код.Это на самом деле просто визуальный аспект, поэтому проблем нет, но если бизнес-модель требует, чтобы в определенном месте были отброшены только определенные элементы или максимальное количество элементов, то ViewModel необходимо будет предоставить некоторые точки привязки данных, которые View можетиспользовать для реализации этого.Поступая так, вы можете утверждать, что код View теперь реализует некоторую бизнес-логику.
Итак, вернемся к вашему первоначальному вопросу.Я бы попытался реализовать приложение таким образом, чтобы оно работало так, как ожидается для приложения Windows 8 Metro-Stryle.Это, очевидно, будет иметь отношение к тому, как вы будете кодировать, но при этом все же можно будет придерживаться шаблона MVVM.