MvvmCross:与MonoTouch.Dialog的TwoWay绑定

时间:2012-09-03 14:26:42

标签: xamarin.ios monotouch.dialog mvvmcross

此问题的完整来源可在此处找到: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上运行良好,所以我知道视图模型没问题。但要么我缺少一些代码用于双向绑定,要么在框架中出现错误或遗漏。

如果我尝试其他类型的元素,例如CheckboxElementStyledStringElement,也会出现此问题。也是我自己创造的元素......

1 个答案:

答案 0 :(得分:1)

根据上述评论,这感觉就像是一些单独的问题:

感谢您报告这些问题 - 以及跟进测试用例。我将看看我是否可以研究如何在mvx存储库中包含一些更正式的测试用例。


作为未来的工作项目,我也非常希望将ValueValueChanged关系正式化 - 我认为可以提供一般规则,以便所有具有Value和ValueChanged的元素都支持数据绑定 - 添加为问题https://github.com/slodge/MvvmCross/issues/26