首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在事件中使用System.Reactive

在事件中使用System.Reactive
EN

Stack Overflow用户
提问于 2022-03-04 15:14:17
回答 2查看 263关注 0票数 1

我正在开发一个WPF应用程序。用户可以在表单中更改他们的地址。当用户单击一个按钮(更改他们的地址)并使用UserInfoEventArgs处理一些信息时,我想引发一个事件。我正在尝试使用反应性扩展。

MS Documentation (Subject constructor)

我有两个疑问。如何订阅mySubject,以及如何将UserInfoEventArgs添加到主题。

代码语言:javascript
复制
Subject<string[]> mySubject = new Subject<string[]>();

// How to subscribe to mySubject and use the method "AddressSubscriber" as the subscriber?

private void UserDataChangedHandler (object sender, UserInfoEventArgs info)
{
    string[] updatedAddress = info.NewAddress.ToArray();  

    if (updatedAddress.Any())
    {
        // How to add "updatedAddress" to mySubject so that "AddressSubscriber" can use it?
    }
}

private void AddressSubscriber(string[] adrs)
{ 
    // Do some operations with adrs
}
EN

回答 2

Stack Overflow用户

发布于 2022-03-07 13:52:08

使用Observable.FromEventPattern方法而不是创建多余的Subject<T>

代码语言:javascript
复制
Observable.FromEventPattern<RoutedEventHandler, RoutedEventArgs>(
    h => btn.Click += h,
    h => btn.Click -= h)
        .Select(_ => new UserInfoEventArgs())
        .Subscribe(args => { /* do something with the args...*/ });
票数 3
EN

Stack Overflow用户

发布于 2022-03-05 07:29:30

如何订阅mySubject并使用方法AddressSubscriber作为订阅者?

代码语言:javascript
复制
mySubject.Subscribe(adrs => AddressSubscriber(adrs));

如何将updatedAddress添加到mySubject中以便AddressSubscriber可以使用它?

代码语言:javascript
复制
mySubject.OnNext(updatedAddress);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71353420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档