2013-07-18 13 views

Antwort

9

In Ordnung, nach einer Menge Kampf habe ich endlich die Antwort bekommen.

Ich musste die folgenden Dinge tun.

1) Hinzugefügt eine Import-Anweisung:

using Cirrious.MvvmCross.Binding.BindingContext; 

2) den folgenden Code hinzugefügt:

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

Ich habe bereits ein "Tablelayout" in meiner HelloView.axml Datei und alles, was ich bin Dabei erstellen Sie ein neues EditText-Box-Steuerelement (txtRace) und fügen es der Ansicht hinzu und binden es gleichzeitig an die "Race" -Eigenschaft des HelloViewModel-Objekts.

Ich verbringe viel Zeit damit herauszufinden, in welcher Namespace CreateBindingSet() -Methode existiert, weil VS2012 mir keine Intelliszenz dazu gegeben hat.

Hoffe das hilft jemandem mit ähnlichen Problem konfrontiert.

+0

Gut zu wissen, dass Sie es sortiert haben. Viel Glück! –

2

Ja MvvmCross unterstützt Bindungseigenschaften für Steuerelemente, die zur Laufzeit erstellt werden. Sie können dieses Tutorial von dem großartigen Mr. Stuart in seiner N + 1 Serie sehen. http://www.youtube.com/watch?feature=player_embedded&v=cYu_9rcAJU4

Hinweis: Er hat dies oft in der Serie gezeigt, aber ich erinnere mich an dieses eine auf der Oberseite meines Kopfes jetzt.

+0

Vielen Dank Mohib für Ihre Antwort. – Amit

+0

Ich bin immer noch in dieser Frage betroffen. Ich habe diesen Artikel angeschaut: http://stackoverflow.com/questions/16724278/mvvmcross-for-android-how-to-do-binding-in-code. Das Problem, dem ich gegenüberstehe, ist, dass ich die Methode CreateBindingSet() nicht bekommen kann. Derzeit erbt meine Aktivität von MvxActivity. Fehle ich eine Assembly-Referenz oder einen Namespace? – Amit

+0

Danke für den Link zum Video. Der Teil, wo Herr Stuart Sie erwähnt, kann mehrere Ansichtsmodelle haben, war hilfreich. –

Verwandte Themen