2012-11-23 4 views
1

je construit un MvxBindableSpinner dans mon Android Application:MVVMCross Spinner - SelectedItem ne fonctionne pas?

<TableRow> 
    <TextView    
     android:text="Mandant:" 
     android:width="0px" 
     android:layout_weight=".22" /> 
     <cirrious.mvvmcross.binding.android.views.MvxBindableSpinner 
     android:layout_weight=".78" 
     local:MvxDropDownItemTemplate="@layout/mandantlistitem_dropdown" 
     local:MvxItemTemplate="@layout/mandantlistitem" 
     local:MvxBind="{'ItemsSource':{'Path':'Mandanten'},'SelectedItem':{'Path':'SelectedMandant','Mode':'TwoWay'}}"/> 
</TableRow> 

Le MandantClass est simple:

//Class 
public class Mandant 
{ 
    //Properties 

    public string MandantBezeichnung { get; set; } 
} 

Le problème que j'ai est que le SelectedItem ne fonctionne pas .. son alway « null », tout ce que je choisis .. bien sur la ViewModel pour le SelectedItem ressemble à ceci:

private string selectedMandant; 
    public string SelectedMandant 
    { 
     get { return selectedMandant; } 
     set { selectedMandant = value; FirePropertyChanged(() => SelectedMandant); } 
    } 

J'ai tout essayé, mais ne peut pas le faire fonctionner .. il compile bien et pas d'erreurs .. mais c'est toujours nul .. Peut-être que quelqu'un peut m'aider?

+1

une autre chose ... il y a des abréviations disponibles si vous en avez besoin - donc 'cirrious.mvvmcross.binding.android.views.MvxBindableSpinner' peut être écrit' Mvx.MvxBindableSpinner' - j'espère que ça aide – Stuart

+0

merci beaucoup pour cette astuce, Et j'ai été en mesure de résoudre le problème – eMi

+1

Lorsque vous obtenez une seconde, il pourrait être agréable de dire comment :) Quand quelqu'un d'autre frappe le même problème et trouve cette question, alors ils seront intéressés :) – Stuart

Répondre

1

Il y a quelques choses que je peux suggérer sur la façon de déboguer/réparer ceci.


Tout d'abord, pouvez-vous définir le niveau de trace de liaison au diagnostic - quelque part dans votre appel code:

MvxBindingTrace.TraceBindingLevel = MvxTraceLevel.Diagnostic; 

ce que cela révèle plus d'informations sur ce qui ne?


Deuxièmement, si vous créez un lien vers le code source, puis mettre un point d'arrêt et/ou en ajoutant une trace supplémentaire à l'intérieur _spinner_ItemSelected dans MvxSpinnerSelectedItemBinding - est cet événement de liaison étant tiré? Passe-t-il à l'appel FireValueChanged? En fonction de ce que cela révèle, essayez d'autres étapes de débogage comme peut-être le traçage MvxBindableSpinner.cs.


Troisièmement ... vous pouvez essayez de comparer à un échantillon existant - Je pense que l'idée est venue de Spinner https://github.com/Zoldeper/Blooor/ à l'origine - prendre alors peut-être un coup d'oeil à quelque chose comme ProductEditView.axml

Est-ce que le travail de code? Si oui, pouvez-vous repérer la différence?

Attention: le code peut avoir changé depuis cet échantillon Blooor a été écrit


Enfin ... ce qui est juste une intuition ... vous pouvez poster un peu plus de votre ViewModel ici? Je me demande si vous avez une incompatibilité de type ... par exemple. est votre selectedItem une chaîne mais devrait être un mandant?


Si ce bogue dans MvvmCross, puis « désolé » et s'il vous plaît le signaler comme une question - sur https://github.com/slodge/MvvmCross/issues - de préférence avec un échantillon reproductible.

Questions connexes