我最近开始学习Rx,并尝试玩事件到Rx转换。我尝试使用NetworkInformation.NetworkStatusChanged事件在Window Phone 8中创建可观察到的网络。
但是,当我使用NetworkInformation.NetworkStatusChanged添加Observable.FromEventPattern时,如下所示:
var networkInformationStatus = Observable.FromEventPattern(typeof(NetworkInformation), "NetworkStatusChanged");
networkInformationStatus.Subscribe(x =>
{
txtClickdata.Text = string.Format("Is internet connected: {0}", NetworkInterface.GetIsNetworkAvailable());
txtClickdata2.Text = string.Format("Network type: {0}", NetworkInterface.NetworkInterfaceType);
});这给了我以下错误:

我做错了什么?如何将此事件添加到可观察的范围内?
发布于 2015-08-23 20:48:32
如果您阅读了正在使用的方法的文档,说明它仅用于
符合具有.NET参数的标准System.EventArgs事件模式的事件
NetworkInformation.NetworkStatusChanged是一种非标准事件类型,因此您需要在转换重载时使用FromEvent。
Observable.FromEvent<NetworkStatusChangedEventHandler, object>(
emit => new NetworkStatusChangedEventHandler(
(target) => emit(target)),
h => NetworkInformation.NetworkStatusChanged += h,
h => NetworkInformation.NetworkStatusChanged -= h);这将允许Rx正确地转换传入的事件。
https://stackoverflow.com/questions/32170178
复制相似问题