xamarin.android – MvvmCross是否允许将ViewModel属性绑定到动态创建的控件?

我有一个应用程序,其中大多数控件是在代码中创建的,然后使用AddView方法添加到布局中.框架是否允许使用代码viewmodel属性绑定到控件,或者只能在axml文件中完成?

解决方法

好吧,经过很多努力,我终于得到了答案.

我必须做以下事情.

1)添加一个import语句:

using CirrIoUs.MvvmCross.Binding.BindingContext;

2)添加了以下代码

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

我已经在Helloview.axml文件中有一个“TableLayout”,我在这里做的就是创建一个新的EditText框控件(txtRace)并将其添加到视图中,同时将其绑定到“Race”属性Helloviewmodel对象.

我花了很多时间试图找出存在什么命名空间的CreateBindingSet()方法,因为VS2012没有给我任何关于它的智能.

希望这有助于面临类似问题的人.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...