我正在尝试为一个Xamarin.iOS项目学习ReactiveUI,我仍然坚持应该是一个简单的任务。我无法将按钮单击绑定到ReactiveCommand,就像我在随附的Xamarin.Android项目中一样。以下是可以正常使用的Android代码:
this.BindCommand (ViewModel, x => x.ClickMe, view => view._button);
这是iOS中使用的相同模式:
this.BindCommand (ViewModel, x => x.ClickMe, view => view.GetForecastButton);
但是,在iOS中我收到以下警告:
“找不到MonoTouch.UIKit.UIButton的命令活页夹”
有谁知道我做错了什么?令人惊讶的是,我已经查找了几十个ReactiveUI iOS示例,我仍然没有找到一个在应用程序中只有一个按钮。它们都可以执行类似于绑定属性的show text或者从ViewModel中的集合中显示UITableView。我确信有一个更完整的iOS示例,如果有人知道一个,请在您的答案中包含。非常感谢。
答案 0 :(得分:2)
您正确地执行了所有操作,但我相信您会被影响ReactiveUI的Xamarin.iOS错误所控制,Type.GetType
无法加载程序集。将其粘贴到AppDelegate中:
https://github.com/paulcbetts/starter-mobile/blob/master/Starter-iOS/AppDelegate.cs#L35
// NB: GrossHackAlertTiem™:
//
// Monotouch appears to not load assemblies when you request them
// via Type.GetType, unlike every other platform (even
// Xamarin.Android). So, we've got to manually do what RxUI and
// Akavache would normally do for us
var r = RxApp.MutableResolver;
(new ReactiveUI.Cocoa.Registrations()).Register((f,t) => r.Register(f, t));
(new ReactiveUI.Mobile.Registrations()).Register((f,t) => r.Register(f, t));