在我在 Mac 上的 Xamarin Studio 项目中,我使用来自MvvmCross-Binaries的 MvvmCross 版本 3.0.13 ,即XS-iOS-Mac Release程序集,并且我试图将基于CrossUI Dialog的View与相应的ViewModel结合起来。具体来说,我Root
在我的对话框视图中定义如下:
var bindings = this.CreateInlineBindingTarget<ViewModel>();
Root = new RootElement("New Connection") {
new Section {
new StringElement("Test")
.Bind(bindings, element => (object)element.SelectedCommand, vm => vm.TestConnection)
},
new Section {
new StringElement ("Add")
.Bind (bindings, element => element.Visible, vm => vm.CanAddConnection)
.Bind (bindings, element => (object)element.SelectedCommand, vm => vm.AddConnection)
}
};
在ViewModel中,如果测试成功,则由命令CanAddConnection
设置为。true
TestConnection
当我运行它(在 iOS 模拟器中)并打开对话框时,会显示测试按钮并隐藏添加按钮(如预期的那样)。当我单击按钮并且测试成功时,添加按钮不会显示,而是我在应用程序输出中收到此消息:
这是怎么发生的——CurrentAttachedCell 是非 UITableView 的子项
为什么我的可见绑定不起作用?
据我所知,我没有在上游进行任何会导致代码失败的代码自定义(但我可能会遗漏一些东西)。
如果我绑定CanAddConnection
到另一个元素属性,例如Caption
,布尔值会在视图中正确更新。