【发布时间】:2017-06-05 18:08:34
【问题描述】:
我从另一个开发人员那里继承了一个 Xamarin MVVMCross 项目。我想知道如何获得使用的默认绑定模式以及如何更改它。
【问题讨论】:
我从另一个开发人员那里继承了一个 Xamarin MVVMCross 项目。我想知道如何获得使用的默认绑定模式以及如何更改它。
【问题讨论】:
在 MvvmCross 中,使用 MvvmCross 定义的绑定(虚拟属性绑定/自定义绑定)时,默认的 binding mode 通常是 Two-Way。原生属性通常为 One-Way,因为默认情况下没有返回机制(View to ViewModel)。
来自MvvmCross Custom binding的笔记:
MvvmCross 已经创建了新的绑定,那么这个 [双向绑定] 通常是 MvvmCross 尝试使用的默认绑定模式。
Windows 和 Xaml 除外:
在 Windows/Xaml 中,这种 [单向绑定] 通常是默认绑定模式 - 所以它 是未选择其他模式时使用的模式。
, Mode=$WhichMode$
$WhichMode$ 是其中之一:
使用 Android AXML 的示例
local:MvxBind="Text UserName, Mode=OneWay"
使用代码库绑定,您可以使用:
OneWay()
TwoWay()
OneWayToSource()
OneTime()
例子:
var set = this.CreateBindingSet<MyView, MyViewModel>();
set.Bind(cardLabel)
.For(v => v.Text)
.To(vm => vm.UserName)
.OneWay();
set.Apply();
【讨论】:
TwoWay 的简短设置模式不会使其成为 Two-Way 绑定,必须使用自定义绑定。