我有一种情况,我的视图定义(即显示在布局文件上的内容)是在 json 结构中定义的。我需要能够定义这个 json 结构以及绑定,然后我的代码应该能够基于 json 结构动态创建控件并填写布局。
我可以使用下面的代码完成相同的操作。
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
FirstViewModel firstViewModel = new FirstViewModel()
{
Id = 1001,
FirstName = "Amit",
MiddleName = string.Empty,
LastName = "Taparia",
Race = "Asian",
IsUSNational = false
};
this.ViewModel = firstViewModel as IMvxViewModel;
var bindings = this.CreateInlineBindingTarget<FirstViewModel>();
this.Root = new RootElement("Main View", null, null).
{
new Section("Personal Information")
{
new StringElement("Employee#","Enter Employee#").Bind(bindings,vm => vm.Id)
new EntryElement("FirstName","Enter First Name").Bind(bindings,vm=>vm.FirstName),
new EntryElement("MiddleName","Enter Middle Name").Bind(bindings, vm=> vm.MiddleName),
new EntryElement("LastName","Enter Last Name","Amit",null).Bind(bindings, vm => vm.LastName),
new EntryElement("Race","Enter Race").Bind(bindings,vm => vm.Race),
new BooleanElement("US National",true,).Bind(bindings, vm => vm.IsUSNational).
},
};
}
但是我需要能够使用 json 文件中定义的结构来做同样的事情。我知道我们可以使用 MvvmCross 做这样的事情,但我不知道该怎么做。
我遇到了这三个示例解决方案 a) CustomerManagement b) CustomerManager.AutoView 在这里我确实看到我们有一个 BaseCustomerEditView.cs,其中定义了一个 json 结构,但代码被注释掉了。c) 对话框示例
几个问题
1) 使用 AutoView 和 MvxDialog 有什么区别?它是一回事吗?
2) 使用 json 文件中定义的控制结构是否有任何潜在的限制。我确实看到了一个与对齐有关的问题。我们无法控制 json 文件中定义的控件的对齐方式。
3)如何使用json文件中定义的结构实现渲染/绑定?
期待您的回复。