2012-05-21 2 views
1

Ma question générale: Existe-t-il un moyen de naviguer vers une vue sans ViewModel?Accédez à une vue sans ViewModel dans MvvmCross

Dans l'exemple:

J'ai une activité qui ne comprend pas ViewModel, car il est l'affichage seulement une image pour un court laps de temps et disparaît par la suite. Maintenant, la manière normale serait de faire un requestNavigate(). Mais je n'ai pas de ViewModel pour y entrer. Comment puis-je naviguer vers cette activité?

Merci pour les réponses!

Répondre

3

Mon avis: Oui - vous devriez toujours utiliser un ViewModel.

Sur chaque plate-forme, l'infrastructure mvvmcross utilise le Type du ViewModel afin d'identifier la vue à afficher.

Si vous n'utilisez pas ViewModel, alors comment les applications clientes vont-elles savoir ce que View affichera?


Si vous trouvez que vous avez beaucoup de ces classes de ViewModel vides, vous pouvez, bien sûr, toujours utiliser un ViewModel comme:

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); 
     } 
    } 

mais dans l'ensemble, je ne pense pas que cela vous gagnez n'importe quoi en utilisant un ViewModel par View ...

+0

merci, cela aide beaucoup. – Martin

+1

Il n'est pas rare que ces vues commencent à collecter des comportements plus tard dans le développement - par ex. la conférence AboutViewModel a commencé comme un shell vide - et maintenant il ressemble à: https://github.com/slodge/MvvmCrossConference/blob/master/Cirrious.Conference.Core/ViewModels/AboutViewModel.cs – Stuart

+0

Stuart Le commentaire est juste: le l'utilisation d'une classe ne définit pas son existence dans OO. Ce qui compte, c'est «qu'est-ce que ce modèle» et non «que fait-il»? Dans votre cas, une machine virtuelle, même vide, modélise la source de données pour la vue. C'est sa responsabilité. Le fait qu'il n'y a pas de données réelles est juste un détail dans votre processus de modélisation. – Askolein

Questions connexes