Can anyone help me please!
I tried to implement something that in C# is:
var keysIO = Observable.FromEvent<KeyDownEventHandler, RoutedEventArgs>(
h => new Ke开发者_如何学GoyDownEventHandler(h),
h => btn.KeyDown += h,
h => btn.KeyDown -= h));
How to write that in VB?
Thank you, R
I first got your code to compile on my machine:
var keysIO = Observable.FromEvent<KeyEventHandler,KeyEventArgs>(
h => btn.KeyDown += h,
h => btn.KeyDown -= h);
Then I opened it in Reflector and modfied to
Dim keysIO As IObservable(Of KeyEventArgs) = _
Observable.FromEvent(Of KeyEventHandler, KeyEventArgs)( _
(Sub(h) AddHandler btn.KeyDown, h), _
(Sub(h) RemoveHandler btn.KeyDown, h))
The C# btn.KeyDown += h corresponds to the following in VB:
AddHandler btn.KeyDown, AddressOf h
Similarly, -= corresponds to RemoveHandler.
However, the VB compiler has issues when using custom EventHandler types that are not directly the generic EventHandler(Of T). In the case of your sample, I"m not sure what the custom KeyDownEventHandler type is doing, in the conversion parameter. If you don't need it, you may be able to use the weakly typed version:
Dim keysIO = Observable.FromEventPattern(Of KeyDownEventHandler, RotedEventArgs)(btn, "KeyDown")
精彩评论