Reactive Extension - Observable.FromEvent类型转换

Roh*_*rma 5 linq system.reactive

我试图在实验室中使用反应式扩展手,但无法使用FromEvent API进行注册(我正在获得编译时异常).我希望在文本框控件上调用textchanged属性时接收事件,有人可以通过FromEvent API建议我在转换时出错吗?我有些怎么不能输入或从TextChangeEventArgs/EventHandler转换为EventHandler - 请告诉我正确的方法.谢谢.

        internal delegate void TextChangedEventArgs(object sender, EventArgs e);
        var txt = new TextBox();

        var form = new Form
                      {
                          Controls = { txt }
                      };


        var subscription = Observable.FromEvent<EventHandler, TextChangedEventArgs>(
           x => (a, b) => new EventHandler(), ??????
           x => txt.TextChanged += x, 
           x => txt.TextChanged -= x
           );

       IDisposable eventSubscription = subscription.Subscribe(
           x => Console.WriteLine("Subscriber Got " + x),
           x => Console.WriteLine("An exception has occured" + x),
           () => Console.WriteLine("Action completed"));

        Console.WriteLine("in here");
       using (new CompositeDisposable(eventSubscription)) { Application.Run(form); }

        Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ood 11

试试这个:

var subscription = Observable.FromEventPattern<TextChangedEventArgs>(txt, "TextChanged"); 
Run Code Online (Sandbox Code Playgroud)