Denetimlerin çoğunun kodda oluşturulduğu ve AddView yöntemini kullanarak mizanpaja eklendiği bir uygulamam var. Çerçeve, ViewModel özelliklerinin kod kullanarak kontrollere bağlanmasına izin veriyor mu yoksa yalnızca axml dosyasında yapılması gerekiyor mu?MvvmCross, ViewModel özelliklerinin anında oluşturulan denetimlere bağlanmasına izin veriyor mu?
cevap
Tamam, mücadelenin çok sonra nihayet cevap aldım.
aşağıdaki şeyler yapmak zorunda kaldı.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);
}
}
Zaten var benim HelloView.axml dosyasında "TableLayout" ve benimle ilgili her şey:
using Cirrious.MvvmCross.Binding.BindingContext;
2) Aşağıdaki kodu Eklendi:
1) bir import ifadesi eklendi Bunu yapmak, yeni bir EditText kutu denetimi (txtRace) oluşturmak ve onu görünümüne ekleyerek ve aynı zamanda HelloViewModel nesnesinin "Race" özelliğine bağlamaktır.
Ben VS2012 bana bu konuda herhangi intelliscence vermiyordu çünkü yöntem var) (Ne ad CreateBindingSet içinde anlamaya çalışıyorum çok zaman geçirirler. Bu benzer bir sorun bakacak birileri yardımcı olur
Umut. Yanıtınız için
Evet MvvmCross zamanında oluşturulan denetimlere bağlama özelliklerini destekler. Bu dersi N + 1 serisinde harika Bay Stuart tarafından izleyebilirsiniz. http://www.youtube.com/watch?feature=player_embedded&v=cYu_9rcAJU4
Not: Bu dizide bir çok kez göstermişti ama bunu şu anda kafamın tepesinde hatırlıyorum.
Teşekkür Mohib. – Amit
Bu konuda hala aşığım. Şu makaleye bakıyordum: http://stackoverflow.com/questions/16724278/mvvmcross-for-android-how-to-do-binding-in-code. Karşılaştığım sorun, CreateBindingSet() yöntemini alamam. Şu anda benim etkinliğim MvxActivity'den miras. Bazı montaj referansını veya ad alanını kaçırmıyorum. – Amit
Videoya bağlantı için teşekkürler. Bay Stuart'in bahsettiğiniz bölüm çoklu görünüm modellerine sahip olabilir. –
Sıraladığınızı bilmek güzel. İyi şanslar! –