Reputation: 7352
The following code works
var mouseTracker = Observable.FromEventPattern<MouseEventArgs>(form1, "MouseMove");
//for Form1_MouseMove(object sender, MouseEventArgs e)
But how to make the Observable.FromEventPattern to take EventHandler <T> ? Something like
var mouseTracker = Observable.FromEventPattern<EventHandler<StockQuote>>(_board, "QuoteUpdated");
//for board_QuoteUpdated(object sender, StockQuote stockQuote)
Edit
Answer from Gluck works. I need to change the FromEventPattern to FromEvent.
var quoteObserver = Observable.FromEvent<EventHandler<StockQuote>, StockQuote>(
h => (_, sq) => h(sq),
eh => _board.QuoteUpdated += eh,
eh => _board.QuoteUpdated -= eh);
Upvotes: 2
Views: 437
Reputation: 2962
There's no such thing as a generic type EventArgs<T>
.
Assuming that what you need is to create an observable for an event which doesn't follow the standard event pattern (in your case it'd mean StockQuote
type doesn't extend EventArgs
), then FromEventPattern
can't be used.
But you can still use FromEvent
:
IObservable<StockQuote> obs = Observable.FromEvent<QuoteUpdatedDelegate, StockQuote>(
h => (_, sq) => h(sq),
eh => _board.QuoteUpdated += eh,
eh => _board.QuoteUpdated -= eh);
Upvotes: 2