使用Mvvmcross绑定与MonoTouch.Dialog(列表和命令)

时间:2013-08-22 14:59:24

标签: binding xamarin.ios mvvmcross monotouch.dialog

1。绑定列表

我想知道如何将ObservableCollection绑定到Radiogroup:

new Section(){
                new RootElement("Mandanten", new RadioGroup("mandanten", 2)) {
                    new Section(){
                        new RadioElement("Kupus", "mandanten"),
                        new RadioElement("Kajmak", "mandanten")
                    }
                }
            }

如你所见,我手动创建2个项目/元素,但我想念像“ItemsSource”这样的东西。 如果不可能,你会给我什么建议?使用女巫控制(绑定列表)?

2。的CommandBinding

我看到MonoTouch.Dialog中没有“按钮”。所以我看到我们将使用“StringElement”。 我试过了,但点击“按钮”后没有发生任何事情:

new StringElement("Login").Bind(this, "SelectedCommand LoginCommand")

我不确定这是错的,也许我需要在这里使用新的“变体”,就像那样:

new EntryElement ("User", "Loginuser", ViewModel.User).Bind(target, v => v.Value, t => t.User),

但我不确定如何构建类似的代码来绑定特定“stringelement”的命令(在这种情况下 - 带有ontap事件的按钮)..

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:4)

1。绑定列表

绑定动态ObservableCollection列表的示例位于https://github.com/slodge/MvvmCross-Tutorials/blob/master/DialogExamples/DialogExamples.Touch/Views/ThirdView.cs - 它使用https://github.com/slodge/MvvmCross-Tutorials/tree/master/DialogExamples/DialogExamples.Touch/BindableElements中的一些自定义元素 - 这些元素基于https://github.com/asednev/MvvmCross.AlexeysExtensions的样本

由于无线电列表在内部实施的方式,我不知道相同的ObservableCollection绑定方法是否适用于无线电列表 - 有人需要进行原型设计并进行实验才能解决这个问题。但是,https://github.com/slodge/MvvmCross-Tutorials/blob/master/DialogExamples/DialogExamples.Touch/Views/FirstView.cs

中显示了一个简单的固定无线电列表

2。的CommandBinding

请参阅:https://github.com/slodge/MvvmCross-Tutorials/blob/master/DialogExamples/DialogExamples.Touch/Views/FirstView.cs

中的示例
                new Section("Action")
                    {
                        new StringElement("Second").Bind(bindings, element => element.SelectedCommand, vm => vm.GoSecondCommand),
                        new StringElement("Bindable Elements").Bind(bindings, element => element.SelectedCommand, vm => vm.BindableElementsCommand)  
                    },