在以前的版本中,人们使用这种技术来绑定 monogame 和 google 广告活动 - 例如,请参阅 在 MvvmCross monodroid Activity 中插入 Monogame 视图I want to use MVVMCross, however for my android application I also want to use other libraries (sliding menu and action bar) which require me to inherit my activity classes from their custom class. This prevents me from inheriting MvxActivity, but I noticed that in MVVMCross for iOS, you can do all your bindings in code (see https://github.com/slodge/NPlus1DaysOfMvvmCross/blob/master/N-00-FirstDemo/FirstDemo.Touch/Views/FirstView.cs)var set = this.CreateBindingSet<FirstView, FirstViewModel>();set.Bind(textEditFirst).To(vm => vm.FirstName);set.Bind(textEditSecond).To(vm => vm.LastName);set.Bind(labelFull).To(vm => vm.FullName);set.Apply();Is there any way to do that in Android? 解决方案 Yes - you can use fluent bindings in Android if you want to.Exactly the same code should work.You'll need to get references to the ui controls using FindViewById<Type>(), then you can bind them.For example, in TipCalc you can add identified controls like:<EditText android:id="@+id/FluentEdit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="number" android:textSize="24dp" android:gravity="right" />and then implement binding using:protected override void OnViewModelSet(){ SetContentView(Resource.Layout.View_Tip); var edit = this.FindViewById<EditText>(Resource.Id.FluentEdit); var set = this.CreateBindingSet<TipView, TipViewModel>(); set.Bind(edit).To(vm => vm.SubTotal); set.Apply(); // for non-default properties use 'For': // set.Bind(edit).For(ed => ed.Text).To(vm => vm.SubTotal); // you can also use: // .WithConversion("converter", "optional parameter") // .OneTime(), .OneWay() or .TwoWay()}Additionally, you can convert any FooActivity into a data-binding MvxFooActivity by:inheriting from FooActivity to provide events from lifetime events in an EventSourceFooActivityinheriting from EventSourceFooActivity to provide a datacontext in an MvxFooActivityyou can then write your code inside activities inheriting from MvxFooActivityTo see, the code required, see:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid.Fragging/MvxEventSourceFragmentActivity.cshttps://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid.Fragging/MvxFragmentActivity.csYou'll see the same code in all the mvx adapted Activities - MvxActivity, MvxTabActivity, ... There is a little cut-and-paste here, but as much code as possible is place in shared extension methods.In previous versions, people have used this technique to bind monogame and google ads activities - eg see Insert a Monogame view inside MvvmCross monodroid Activity 这篇关于android 的 MVVMCross - 如何在代码中进行绑定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 07-24 07:40