我在Xamarin中使用MvvMCross绑定片段代码有一点问题.
首先,我想做什么或我要做什么:
我希望我的解释还可以.我从最低的元素开始.
首先,我建立动态的UI.
我有很多“模板”.它们定义了我的片段片段,例如Lable和ACTextEdit-FIEld.
然后,我有很多片段(我的视图).它们包含此代码片段
在单独的课程中,我将片段添加到“片段”中,并为其赋予唯一的ID
我的基础是将片段和VIEwPager与Mvx结合使用的教程. Ostebaron:
http://blog.ostebaronen.dk/2013/07/fragments-and-viewpager-with-mvx.html
现在,我必须使用Fragement和VIEModel创建一个Bindingset.然后,我必须将元素与视图模型中的属性绑定.
但是我不知道代码中的哪个位置.我试图在HomeVIEw的OncreateVIEw函数中执行此 *** 作,但是它没有用.
有人知道如何解决这个问题或给我一些建议吗?
我选择绑定此:
using AndroID.OS;using AndroID.VIEws;using AndroID.Widget;using CirrIoUs.MvvmCross.Binding.BindingContext;using CirrIoUs.MvvmCross.Binding.DroID.BindingContext;using CirrIoUs.MvvmCross.DroID.Fragging.Fragments;using TipCalc.Core.viewmodels;namespace TipCalc.UI.DroID.VIEws.Fragments{ public class TipCalcFragment : MvxFragment { public overrIDe VIEw OnCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { VIEw v = inflater.Inflate(Resource.Layout.vIEw_tip, container, false); var edit = v.FindVIEwByID<TextVIEw>(Resource.ID.editTest43); var ignore = base.OnCreateVIEw(inflater, container, savedInstanceState); var set = this.CreateBindingSet<TipCalcFragment, Tipviewmodel>(); set.Bind(edit).To(vm => vm.Tip); set.Apply(); return this.BindingInflate(Resource.Layout.vIEw_tip, null); } }}
并且它可能无法在错误的地方工作?
解决方法:
我强烈建议您在布局文件中声明绑定.
然后,您的OnCreateVIEw可以简化为:
public overrIDe VIEw OnCreateVIEw (LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState){ this.EnsureBindingContextIsSet (savedInstanceState); return this.BindingInflate(Resource.Layout.UserheaderVIEw, null);}
即使未在布局文件中声明它,也应始终调用SecureBindingContextIsSet.这是一个扩展方法,因此您可能必须声明
> CirrIoUs.MvvmCross.Binding.BindingContext
> CirrIoUs.MvvmCross.Binding.DroID.BindingContext
在您的使用中.
总结以上是内存溢出为你收集整理的android-Mvvmcross在代码上绑定片段的子代全部内容,希望文章能够帮你解决android-Mvvmcross在代码上绑定片段的子代所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)