Ho un'applicazione in cui la maggior parte dei controlli viene creata nel codice e quindi aggiunta al layout utilizzando il metodo AddView. Il framework consente il binding delle proprietà ViewModel ai controlli usando il codice o deve essere fatto solo nel file axml?MvvmCross consente il binding delle proprietà ViewModel ai controlli creati al volo?
risposta
OK, dopo un sacco di lotta ho finalmente avuto la risposta.
Ho dovuto fare le seguenti cose.
1) Aggiunto un'istruzione import:
using Cirrious.MvvmCross.Binding.BindingContext;
2) aggiunto il seguente codice:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Hello);
TableLayout containerLayout = this.FindViewById<TableLayout>(Resource.Id.containerLayout);
if (containerLayout != null)
{
TableRow newRow = new TableRow(base.ApplicationContext);
newRow.SetMinimumHeight(50);
var txtRace = new EditText(ApplicationContext);
txtRace.Hint = "Race";
var bindingSet = this.CreateBindingSet<HelloView, HelloViewModel>();
bindingSet.Bind(txtRace).To(vm => vm.Race);
bindingSet.Apply();
newRow.AddView(txtRace);
containerLayout.AddView(newRow);
}
}
Ho già un "TableLayout" nel mio file HelloView.axml e tutto ciò che sono facendo ciò, si crea un nuovo controllo casella EditText (txtRace) e lo si aggiunge alla vista e allo stesso tempo si lega alla proprietà "Race" dell'oggetto HelloViewModel.
Dedico molto tempo a cercare di capire in quale spazio dei nomi il metodo CreateBindingSet() esiste perché VS2012 non mi dava alcun intelletto su questo.
Spero che questo aiuti qualcuno che si trova ad affrontare un problema simile.
Sì MvvmCross supporta le proprietà di associazione ai controlli creati in fase di esecuzione. Puoi guardare questo tutorial dal fantastico Mr. Stuart nella sua serie N + 1. http://www.youtube.com/watch?feature=player_embedded&v=cYu_9rcAJU4
Nota: Ha dimostrato questo molte volte nella serie, ma mi ricordo questo uno sulla parte superiore della mia testa in questo momento.
Grazie Mohib per la vostra risposta. – Amit
Sono ancora colpito da questo problema. Stavo guardando questo articolo: http://stackoverflow.com/questions/16724278/mvvmcross-for-android-how-to-do-binding-in-code. Il problema che sto affrontando è che non sono in grado di ottenere il metodo CreateBindingSet(). Attualmente la mia attività eredita da MvxActivity. Mi manca qualche riferimento all'assembly o spazio dei nomi. – Amit
Grazie per il link al video. La parte in cui il signor Stuart parla di te può avere più modelli di vista utili. –
- 1. Binding per interno ViewModel-Proprietà
- 2. MvvmCross ViewModel caching e reinizializzazione
- 3. Modifica il valore delle impostazioni al volo?
- 4. DataTrigger legame ViewModel proprietà
- 5. Estensione per Chrome: scarica/esporta contenuti creati "al volo"
- 6. MvvmCross: GestureRecognized vincolante per l'azione ViewModel
- 7. Creazione rapida delle proprietà ViewModel in wpf?
- 8. Elaborazione delle immagini con ridimensionamento al volo
- 9. MVVMCross per Android - come eseguire il binding nel codice?
- 10. Accesso al valore di controlli creati dinamicamente C# asp.net
- 11. primavera: aggiungi il contesto xml al volo?
- 12. Riattivazione delle proprietà della GUI di sola lettura in ViewModel
- 13. Passaggio di variabili da ViewModel a un'altra vista (MVVMCross)
- 14. Binding SelectedItems di ListView su ViewModel
- 15. Qual è il modo migliore per passare oggetti a "navigato a" viewmodel in MVVMCross?
- 16. Converti EPS in PDF al volo con pdflatex al volo
- 17. Convalidare EmberJS TextField al volo?
- 18. Disabilita i controlli PEP8 al volo, controlla solo al salvataggio del file
- 19. knockout proprietà viewmodel indefinito
- 20. Controlli dinamici creati all'interno di UpdatePanel?
- 21. Misurazione dei controlli creati in fase di esecuzione in WPF
- 22. Come eseguire il binding alla proprietà con accesso solo get
- 23. Al volo compilatore java in javascript
- 24. PHPExcel scrivere al volo?
- 25. Come utilizzare DomainContext.Load per popolare le proprietà del mio ViewModel?
- 26. Test delle unità Clojure al volo in un frame separato
- 27. Cambiare il modello di Auth al volo
- 28. Scarica il codice ed esegui al volo
- 29. Come aggiungere eventi ai controlli creati in runtime in Excel con VBA
- 30. Utilizzando IMultiValueConverter passare più CommandParameters al ViewModel
Buono a sapersi, l'hai risolto. In bocca al lupo! –