目前,我只是使用普通的旧委托/事件观察者模式来处理按钮上的点击事件。所以,我想我会去 Rx。
我的第一次尝试是球。我想我会选择你在 WinForms 示例中看到的最简单的重载:
Observable.FromEventPattern<EventArgs>(__navToTestButton, 'click');
但我有一个例外,Android 按钮没有点击事件。这是史诗般的反思失败。我猜也许我错过了一个 dll(太好了,另一个 dll 让我的 apk 更大)。
无论如何,我想我会以不同的重载继续前进。现在看起来像这样:
navToTest = Observable.FromEventPattern<EventArgs>(
x => _navToTestButton.Click += _navToTestButton_Click,
x => _navToTestButton.Click -= _navToTestButton_Click
).ObserveOn(SynchronizationContext.Current);
还是失败了。没有例外。但是当我点击按钮时,只有蟋蟀和风滚草。我是要订阅那个吗?那会是什么样子,因为订阅似乎已经在超载中发生了?
Xamarin 足够棘手,但 Rx 只是让它变得非常困难。尤其是在没有很多人写博客的情况下(至少我的谷歌搜索没有什么太有用的东西。我的代码基于我找到的一些零碎的东西。
谢谢