我正在为Windows 10 UWP项目使用Rx-Main(可观察库)。我有一个名为的第三个库的事件:
Observable.FromEvent<OnNumberChangedEventHandler>(x => x => _calculator.OnNumberChanged += x, x => _calculator.OnNumberChanged -= x)
我一直在尝试猜测如何使用
进行子语言React-Native
但我没有办法解决它。我知道如何为EventHandlers或带有1个参数的EventDelegates做这件事,但在这种情况下它有2个int参数。关于如何做的任何想法?
感谢。
答案 0 :(得分:2)
我非常讨厌这种语法:
var o = Observable.FromEvent<OnNumberChangedEventHandler, Tuple<int, int>>(
a => (i1, i2) => a(Tuple.Create(i1, i2)),
h => _calculator.OnNumberChanged += h,
h => _calculator.OnNumberChanged -= h
); //o is type IObservable<Tuple<int, int>>
基本上,Rx需要知道如何挂钩/取消挂起委托:这是最后两个参数。第一个参数是从自定义委托转换为Action<Tuple<int, int>>
。然后该操作用于OnNext的可观察对象。
如果您愿意,可以将Tuple<int, int>
类型替换为其他内容。
答案 1 :(得分:1)
试试这样:
Observable.FromEvent<OnNumberChangedEventHandler, (int, int)>(
x => _calculator.OnNumberChanged += x,
x => _calculator.OnNumberChanged -= x);