Это распространенное заблуждение, что MVVM запрещает выделение кода.Правда в том, что кодовый код не подлежит повторному использованию и неотделим от представления, поэтому он не может быть проверен модулем без автоматизации.Но у него есть свои применения.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *На самом деле, он не сильно отличается от всего другого кода вашей записи в поддержку вашего представления, такого как преобразователи, пользовательские элементы управления и т. Д. Ни один из этого кода не может быть протестирован вашими модульными тестами модели представления.Единственная разница с выделенным кодом состоит в том, что он менее пригоден для повторного использованияНо это все же часть вашего взгляда , а просмотры неплохо .
В целом, отсутствие 1011 кода позади является хорошим индикаторомчистого разделения между представлением и моделью представления.Однако наличие некоторого кода в другом, как обычно, чистом проекте обычно просто указывает на то, что трудно сделать со стандартными элементами управления, привязкой данных и командами.
В вашем случае экспортXamDataGrid
определенно зависит от вида .Это связано именно со сторонней библиотекой, которую вы выбрали для просмотра.Таким образом, имеет смысл , что он не должен быть частью модели представления.
Если вы все еще полностью настроены против любого кода, вы можетеиспользуйте поведения, такие как ACB или Blend Behaviors , чтобы написать функциональность, которую вы в противном случае добавили бы в код.Просто поймите, что даже поведение по-прежнему является частью представления , только более пригодного для повторного использования, чем выделенный код.