gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:03:23 26 4
gpt4 key购买 nike

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

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

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

});

当我从姓氏 UITextView 移动到 uservin UITextView 时,我希望我的 View 模型中的 SETTER 被调用,但它没有。当我单击按钮并检查 ViewModel 上两个文本属性的值时,它们都为空。

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

干杯,

/j

最佳答案

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

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

  • 添加一个自定义目标绑定(bind)类 - 有点像 v3 中的这个:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Target/MvxUITextViewTextTargetBinding.cs
  • 在 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 binding 是大多数非 Windows MvvmCross 绑定(bind)的默认设置。

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

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com