可以在此处找到此问题的完整来源:https ://github.com/Cheesebaron/MvvmCross.SettingsSample
我主要关心的是 SettingsView,我尝试绑定一些简单的 BooleanElements:
this.Root = new RootElement("Settings")
{
new Section("Test", string.Format("Choose to see your own location on the map.{0}Choose to allow shake gestures.{0}Choose whether you want to receive notifications.", Environment.NewLine))
{
new BooleanElement("Show my location", ViewModel.ShowMyLocation).Bind(this, "{'Value':{'Path':'ShowMyLocation','Mode':'TwoWay'}}"),
new BooleanElement("Shake gestures", ViewModel.ShakeGestures).Bind(this, "{'Value':{'Path':'ShakeGestures','Mode':'TwoWay'}}"),
new BooleanElement("Notifications", ViewModel.Notifications).Bind(this, "{'Value':{'Path':'Notifications','Mode':'TwoWay'}}"),
},
};
我的问题在于绑定似乎只能以一种方式工作,即使我明确指定它是TwoWay
. 这两种方式绑定似乎在 WP7 和 Android 上运行良好,所以我知道视图模型没问题。但是要么我缺少一些用于双向绑定的代码,要么框架中有错误或缺失。
CheckboxElement
如果我尝试使用其他类型的元素,例如or ,也会出现此问题StyledStringElement
。还有我自己制作的元素...