xamarin.ios - 如何使用 mvvmcross 双向绑定(bind)到 UITextView 控件?

标签 xamarin.ios mvvmcross

我有一个使用 XCode 创建的简单 View (它是 XIB)。它由两个 UITextView 控件和一个 UIButton 组成。我已将 UITextView 控件公开为 Outlet 并给它们命名。我的 View.designer.cs 文件中的一切看起来都很好。

我正在使用以下语法创建绑定(bind):

        this.AddBindings(
            new Dictionary<object, string>()
            {
                {lastname, "{'Text':{'Path':'LastName','Mode':'TwoWay'}}"},
                {uservin, "{'Text':{'Path':'CarVIN','Mode':'TwoWay'}}"}

            });

当我从姓氏 UITextView 移动到用户名 UITextView 时,我希望 View 模型中的 SETTER 被调用,但事实并非如此。当我单击按钮并检查 ViewModel 上两个文本属性的值时,它们均为 null。

有人知道我做错了什么吗?我在周二进行了一个快速演示,并且所有其他平台都运行良好,但似乎无法解决这个问题。

干杯,

/j

最佳答案

我认为问题在于您正在使用 UITextView 实例...但 mvvmcross vnext 仅附带 UITextField 元素的 2 路绑定(bind)。

要将 UITextView 2 路绑定(bind)添加到旧的 mvvmcross 版本:

  1. 添加自定义目标绑定(bind)类 - 有点像 v3 中的这个:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Target/MvxUITextViewTextTargetBinding.cs

  2. 在Setup.cs期间使用如下代码注册它:

    protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
    {
        base.FillTargetFactories(registry);
    
        registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(MvxUITextViewTextTargetBinding), typeof(UITextView), "Text");
    }
    

或者(但可能不是在您立即演示之前),您可以考虑更新到 v3 beta 版本。


顺便说一句,使用“swiss”绑定(bind)语法现在通常是执行此操作的正常方法:

    this.AddBindings(
        new Dictionary<object, string>()
        {
            {lastname, "Text LastName"},
            {uservin, "Text CarVIN"}
        });

... 和 TwoWay 绑定(bind)是大多数非 Windows MvvmCross 绑定(bind)的默认设置。

关于xamarin.ios - 如何使用 mvvmcross 双向绑定(bind)到 UITextView 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839310/

相关文章:

ios - 在不阻塞标签栏的情况下显示屏蔽的 BTProgressHUD?

c# - 仅显示列表中的一个项目

c# - DequeueReusableCell 仅在 iPhone 4S 上使应用程序崩溃

ios - Mvvm 跨 iOS : how to dismiss a view controller when use IMvxModelTouchView

android - MVVMCross fragment 导航在 4.0 中如何工作?

xamarin - 为选取器设置背景图像

c# - 如何在 Xamarin.IOS 中返回到之前的 ViewController

assemblies - 是否需要手动将 <AutoGenerateBindingRedirect> 元数据添加到 Core 项目文件以正确引用程序集?

c# - 在 Xamarin/C# 中从 URL 加载的 UIImage

c# - 适用于 MonoTouch、适用于 Android 和 WP7 的 Mono 的经过身份验证的 WCF 服务