C# - Rx framework to create Observable from EventHandler
The following code shows how to create IObserable object from EventHandler delegator.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public CustomEventArg : EventArg
{
public int Value { get; set; }
}
public class CustomOtherClass
{
public event EventHandler<CustomEventArg> OnCustEvent;
}
public class Test
{
private IObservable<CustomEventArg> m_obEvent;
private CustomOtherClass m_other = new CustomOtherClass();
public IObservable<CustomEventArg> ObserverCustomEvent { get { return m_obEvent; } }
Test()
{
m_obEvent = Obserable.FromEvent<EventHandler<CustomEventArg>, CustomEventArg>(h =>
{
EventHandler<CustomEventArg> handler = (sender, e) =>
{
h(e);
}
return handler;
},
f => m_other.OnCustomEvent += f,
f => m_other.OnCustomEvent -= f);
}
}