Xamarin.ios 如何使用mvvmcross对UITextView控件进行双向绑定?
我有一个使用XCode创建的简单视图(它是一个XIB)。它由两个UITextView控件和一个UIButton组成。我已将UITextView控件公开为插座,并为它们命名。在my View.designer.cs文件中,一切看起来都很好 我正在使用以下语法创建绑定:Xamarin.ios 如何使用mvvmcross对UITextView控件进行双向绑定?,xamarin.ios,mvvmcross,Xamarin.ios,Mvvmcross,我有一个使用XCode创建的简单视图(它是一个XIB)。它由两个UITextView控件和一个UIButton组成。我已将UITextView控件公开为插座,并为它们命名。在my View.designer.cs文件中,一切看起来都很好 我正在使用以下语法创建绑定: this.AddBindings( new Dictionary<object, string>() { {lastname
this.AddBindings(
new Dictionary<object, string>()
{
{lastname, "{'Text':{'Path':'LastName','Mode':'TwoWay'}}"},
{uservin, "{'Text':{'Path':'CarVIN','Mode':'TwoWay'}}"}
});
this.AddBindings(
新字典()
{
{lastname,{'Text':{'Path':'lastname','Mode':'TwoWay'}},
{uservin,“{'Text':{'Path':'CarVIN','Mode':'TwoWay'}}”
});
当我从lastname UITextView移动到uservin UITextView时,我希望调用viewmodel中的SETTER,但它没有。当我单击按钮并检查ViewModel上两个文本属性的值时,它们都为null
有人知道我做错了什么吗?我在周二有一个快速的演示,所有其他平台都运行得很好,但似乎无法解决这个问题
干杯
/j我认为问题在于您使用的是
UITextView
实例。。。但是mvvmcross vnext仅为UITextField
元素提供双向绑定
要将UITextView
2向绑定添加到较旧的mvvmcross版本,请执行以下操作:
protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
base.FillTargetFactories(registry);
registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(MvxUITextViewTextTargetBinding), typeof(UITextView), "Text");
}
可选(但可能不是在你的即时演示之前),你可以考虑升级到V3 beta版本。
顺便说一句,使用“swiss”绑定语法现在通常是执行此操作的正常方式:
this.AddBindings(
new Dictionary<object, string>()
{
{lastname, "Text LastName"},
{uservin, "Text CarVIN"}
});
this.AddBindings(
新字典()
{
{lastname,“Text lastname”},
{uservin,“Text CarVIN”}
});
。。。对于大多数非Windows MvvmCross绑定,
two-way
绑定是默认的。完美。再次感谢你,斯图尔特!