【问题标题】:MVVMCross, FieldBinding plugin, iOS, code binding doesn't workMVVMCross,FieldBinding 插件,iOS,代码绑定不起作用
【发布时间】:2014-10-08 23:17:08
【问题描述】:

我在我的 iOS 应用程序中使用 MVVMCross/Xamarin。 我有 ViewModel,其属性定义如下:

public readonly INC<Address> Entity = new NC<Address>();

在哪里

public class Address
{
    public string Line1 { get; set; }

    public string Line2 { get; set; }

    public string Line3 { get; set; }
    //other properties...
}

如果我以这种方式进行绑定,它会起作用:

set.Bind(Line1Text).To("Entity.Line1").TwoWay();

如果我以这种方式绑定,它不起作用并输出警告(见下文):

set.Bind(Line1Text).To(vm => vm.Entity.Value.Line1).TwoWay();

我得到的错误是没有构造绑定。 应用程序输出的警告:

2014-10-08 19:12:15.341 IosTemplate[8442:248933] MvxBind:警告: 12.63 无法绑定:source property source not found Property:Value on Address

请指教,如何使用 lambda 表达式方式与 INC/NC 进行绑定。

【问题讨论】:

    标签: c# ios xamarin mvvmcross


    【解决方案1】:

    请指教,如何使用 lambda 表达式方式与 INC/NC 进行绑定

    Field Binding plugin 不附带任何对流畅表达式解析的扩展,因此如果没有额外的工作,这种类型的链式表达式无法以流畅的形式完成。

    如果您想扩展流式绑定表达式的解析方式或绑定的评估方式 - 为 INC 添加一些特殊情况 - 那么我相信这可以做到,但需要一些实验和编码才能做。例如,您可以尝试检查和操作 https://github.com/MvvmCross/MvvmCross/blob/3.2/Plugins/Cirrious/FieldBinding/Cirrious.MvvmCross.Plugins.FieldBinding/MvxChainedNotifyChangeFieldSourceBinding.cs#L32 中的 childList 以从列表中删除 Value 项目 - 尽管这可能也会删除偶尔正确的 Value :/ 如果您可以使某些东西运行良好且可靠,那么也很乐意将其作为拉取请求返回到框架中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多