Переход к представлению без ViewModel в MvvmCross

Мой общий вопрос: есть ли способ перейти к представлению без ViewModel?

В примере:

У меня есть действие, которое не включает ViewModel, потому что оно отображает только изображение в течение короткого времени, а затем исчезает. Теперь обычным способом было бы сделать requestNavigate(). Но у меня нет ViewModel для входа туда. Как я могу перейти к этой деятельности?

Спасибо за ответы!


person Martin    schedule 21.05.2012    source источник


Ответы (1)


Мое мнение: Да, всегда следует использовать ViewModel.

На каждой платформе инфраструктура mvvmcross использует тип модели представления, чтобы определить, какое представление отображать.

Если вы не используете ViewModel, то как клиентские приложения узнают, какой View показывать?


Если вы обнаружите, что у вас много этих пустых классов ViewModel, вы, конечно, всегда можете использовать ViewModel, например:

  public class StaticViewModel : BaseViewModel
  {
      public enum WhichOne
      {
          AboutPage,
          InfoPage,
          HelpPage,
          // etc
      }

      public WhichOne WhichPage { get; set; }

      public StaticViewModel(string which)
      {
          WhichPage = (WhichOne) Enum.Parse(typeof(WhichOne), which, false);
      }
  }

но в целом, я не думаю, что это даст вам что-то по сравнению с использованием одной ViewModel для каждого представления...

person Stuart    schedule 21.05.2012
comment
также нередко эти представления начинают собирать данные о поведении на более поздних этапах разработки, например. конференция AboutViewModel начиналась как пустая оболочка — и теперь она выглядит так: ="nofollow noreferrer">github.com/slodge/MvvmCrossConference/blob/master/ - person Stuart; 21.05.2012
comment
Комментарий Стюарта прав: использование класса не определяет его существование в ОО. Важно то, что делает эта модель, а не то, что она делает. В вашем случае виртуальная машина, даже пустая, моделирует источник данных для представления. Это его ответственность. Тот факт, что фактических данных нет, — это просто деталь вашего процесса моделирования. - person Askolein; 16.01.2013