【问题标题】:How Can I Unfold This Event to an Observable Sequence?如何将此事件展开为可观察序列?
【发布时间】:2015-08-31 06:16:07
【问题描述】:

我正在尝试为 Outlook 编写加载项,我正在使用的事件之一是 ItemsEvents_Event.ItemChange - 它的处理程序的签名将 Object 作为参数(更改的项目):

items.ItemChange += CalendarItems_ItemChange;

private void CalendarItems_ItemChange(object anItem) {...}

如何使用Observable.FromEventObservable.FromEventPattern 从这个事件“流”创建一个可观察序列,而不是像往常一样附加/分离事件?

【问题讨论】:

    标签: c# system.reactive observable


    【解决方案1】:

    您需要使用 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);
    

    类似answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      相关资源
      最近更新 更多