2013-05-22 8 views
6

Sto utilizzando MvvmCross v3.06 e ho definito un MvxListView in Android che è associato a un elenco. Riesco a vedere l'elenco ma non riesco a trovare il modo migliore per afferrare l'elemento selezionato quando faccio clic.MvvmCross: Qual è il modo migliore per ottenere l'oggetto selezionato da un MvxListView in Android?

Al momento sto seguendo le seguenti operazioni su OnCreate dell'attività, ma non è particolarmente MVVM e mi sono chiesto se c'è un modo migliore per l'associazione?

var list = FindViewById<MvxListView>(Resource.Id.subslist); 
list.ItemClick = ((MyViewModel)ViewModel).ItemSelectedCommand; 

Non riesco a trovare alcuna documentazione sul modo migliore per farlo, quindi qualsiasi aiuto sarebbe fantastico.

risposta

11

per Android, la tecnica più comune è quello di legare ItemClick a un MvxCommand<TItem> - in modo da utilizzare:

local:MvxBind="ItemClick ItemSelectedCommand" 

si può vedere questo in funzione negli esempi tra cui:


Meno comuni (finora), per Android, è anche possibile associare a un legame SelectedItem personalizzato su MvxListView

Questa tecnica è indicata su un Spinner (MvxSpinner) in MoreControls - https://github.com/slodge/MvvmCross-Tutorials/blob/master/MoreControls/MoreControls.Droid/Resources/Layout/FirstView.axml (questo esempio viene creato dal vivo durante il video N = 18 - vedere http://youtu.be/s1LhXdCTsn4?t=7m26s

+0

Eccellente, è davvero utile. Mille grazie Stuart e complimenti per il tuo lavoro su MvvmCross. – JohnB

+0

ItemClick funziona su LinearLayout? – ronag

+0

Ho problemi a far funzionare la funzione SelectedItem per un MvxListView. Riesco a vedere la funzione di associazione dei dati, ma l'elemento selezionato viene evidenziato momentaneamente, quindi l'evidenziazione scompare. Qualche idea, perché? – jokeane