2012-12-11 1 views
1

Je suis en train d'essayer de créer une vue à onglets à l'aide de l'exemple de la conférence Cirrious, mais je semble avoir des problèmes pour afficher mes données. Le problème se pose lorsque la vue qui accueille l'onglet est appelé spécifiquement le code ci-dessousDonnées ViewModel perdues lors de l'ajout d'un onglet dans TabHost

// Initialize a TabSpec for each tab and add it to the TabHost spec = TabHost.NewTabSpec("welcome"); spec.SetIndicator(this.GetText("Welcome"),Resources.GetDrawable(Resource.Drawable.Tab_Welcome)); spec.SetContent(CreateIntentFor(ViewModel.Welcome)); TabHost.AddTab(spec);

Mon ViewModel calss est inférieure à

public class WelcomeViewModel : MvxViewModel 
{ 
    private string _description; 
    public string Description 
    { 
     get 
     { 
      return _description; 
     } 
     set 
     { 
      _description = value; 
      FirePropertyChanged("Description"); 
     } 
    } 

    public WelcomeViewModel(string description) 
    { 
     Description = description; 
    } 

    public WelcomeViewModel() 
    { 

    } 
} 

L'objet ViewModel.Welcome est créé et initialisés avec les données Il lui est passé et reste ainsi jusqu'à ce que le contrôle passe la méthode SetContent, mais lorsque AddTab est appelé, le constructeur WelcomeViewModel semble être appelé à nouveau et les données sont réinitialisées. La pile d'appel à la trace ce

base.OnCreate(bundle);

appel dans la classe BaseTabbedView. Comment puis-je conserver les données dans le WelcomeViewModel afin qu'il s'affiche dans mon onglet, Merci beaucoup

Répondre

0

J'ai le sentiment que c'est probablement un bug que j'ai corrigé il y a quelques semaines. Le bug était que le cache utilisé pour stocker ces viewmodels enfants commençait son indexation à 0 - et 0 était également considéré comme la valeur vide par l'intention Android.


En vNext, voir cette checkin https://github.com/slodge/MvvmCross/commit/bcebadffee3850857d6a73070704e72b3aa72bcb

En maître, voir https://github.com/slodge/MvvmCross/commit/c3171e27168bf2b7e48dd73d105f5a08870cec5a

Questions connexes