是否可以使用github上的文档中所述的MvxValueCombiner并在IOs项目上实现流畅的绑定?
我想在这样的字段上连接名字和姓氏(伪代码)
set.Bind(SubRightLbl).To(vm => vm.user).Add("vm.user.firstname", "vm.user.lastname");
最佳答案
当前执行此操作的唯一方法是在To
或SourceDescribed
流利扩展中使用自由文本。
例如,请参见ApiExamples If
和Maths
示例:
var set = this.CreateBindingSet<MathsView, MathsViewModel>();
set.Bind(label1).To(vm => vm.TestVal1);
set.Bind(seek1).To(vm => vm.TestVal1);
set.Bind(label2).To(vm => vm.TestVal2);
set.Bind(seek2).To(vm => vm.TestVal2);
labelA.Text = "Add";
set.Bind(labelB).SourceDescribed("TestVal1 + '+' + TestVal2 + '=' + (TestVal1 + TestVal2)");
labelC.Text = "Subtract";
set.Bind(labelD).SourceDescribed("TestVal1 + '-' + TestVal2 + '=' + (TestVal1 - TestVal2)");
labelE.Text = "Multiply";
set.Bind(labelF).SourceDescribed("TestVal1 + '*' + TestVal2 + '=' + (TestVal1 * TestVal2)");
labelG.Text = "Divide";
set.Bind(labelH).SourceDescribed("TestVal1 + '/' + TestVal2 + '=' + (TestVal1 / TestVal2)");
labelI.Text = "Modulo";
set.Bind(labelJ).SourceDescribed("TestVal1 + '%' + TestVal2 + '=' + (TestVal1 % TestVal2)");
set.Apply();
来自https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ApiExamples/ApiExamples.Touch/Views/FirstView.cs#L699
另外,如果您想创建自己的扩展方法来提供所需的功能,那肯定应该可行-表达式组合器
.Combine("CombinerName", "Expression0", "Expression2", ....)
当然应该可以建造