Я согласен с тем, что разделение ваших экранов на несколько видов с несколькими моделями представления необходимо для уменьшения объема и сложности. Вот еще один шаблон, который я использовал, чтобы помочь придерживаться SRP с использованием MVVM:
Вот один сценарий. Моя ViewModel должна получать данные и отвечать на команды фильтра из пользовательского интерфейса. Я создаю ViewModel, чтобы быть составной по структуре. То есть дочерние классы, которые имеют доступ к закрытым членам ViewModel, выполняют линейные задачи, такие как обработка фильтрации. У меня также может быть другой дочерний класс, который выполняет необходимую логику для выбора элементов на основе критериев. Вы поняли идею. Как только ViewModel выполняет определенные функции, охватывающие несколько методов, он может стать хорошим кандидатом для делегирования дочернему классу. Дочерние классы остаются частью основной ViewModel, поэтому это всего лишь способ уменьшить размер ViewModel и упростить модульное тестирование этих линейных операций.