[英]How Can I Unfold This Event to an Observable Sequence?
我正在尝试为Outlook编写外接程序,而我正在使用的事件之一是ItemsEvents_Event.ItemChange
其处理程序的签名将Object
作为参数(已更改的项目):
items.ItemChange += CalendarItems_ItemChange;
private void CalendarItems_ItemChange(object anItem) {...}
我将如何使用Observable.FromEvent
或Observable.FromEventPattern
从此事件“流”创建可观察序列,而不是像往常那样附加/分离事件?
您需要使用FromEvent
转换重载来告诉Rx如何解释事件:
IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion,
Action<TDelegate> addHandler,
Action<TDelegate> removeHandler);
在您的情况下,它看起来像:
var source = Observable.FromEvent<ItemsEvents_ItemEventChangeHandler, object>(
emit => new ItemsEvents_ItemEventChangeHandler((obj) => emit(obj)),
h => items.ItemChange += h,
h => items.ItemChange -= h);
类似答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.