需要一些帮助以适应旧的RX代码段 [英] need some help to adapt an old RX snippet

查看:61
本文介绍了需要一些帮助以适应旧的RX代码段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法弄清楚如何根据互联网上的布莱恩·诺伊斯(Bryan noyes)来制作演示.

i cannot figure out how to adapt a demo from bryan noyes found on the internet .

这正是我想要得到的,但是它使用了旧版本的rx,并且某些部分已经过时了:

this is exactely what i want to get, but it use an old version of rx and some parts are obselete :

这是一个需要更新的代码段

this is a snippet that need some update

  void FeedInput(TextBox textBox, ItemsControl list)
        {
            var inputObservable = from evt in Observable.FromEventPattern<TextChangedEventHandler, TextChangedEventArgs>
                (h => textBox.TextChanged += h, h => textBox.TextChanged -= h)
                        select ((TextBox)evt.Sender).Text;

            var throttledInput = inputObservable.Throttle(TimeSpan.FromSeconds(.2)).DistinctUntilChanged();
            //var throttledInput = inputObservable;

            var proxy = new CustomerLookupServiceClient();
            var loopupCallObservable = Observable.FromAsyncPattern<string, List<CustomerInfo>>(
                proxy.BeginGetCustomerInfo, proxy.EndGetCustomerInfo);

            var matches = from input in throttledInput
                          from found in loopupCallObservable(input).TakeUntil(throttledInput)
                          select found;

            matches.ObserveOnDispatcher().Subscribe(match =>
            {
                ShowHideMatchList(match, list);
            });
        }

我必须更改的2项主要内容:

2 main things i have to change: 

-用实体框架查询替换WCF代理.

- replace the WCF proxy by an entity framework query .

-visual studio告诉我 FromAsyncPattern 已过时,我必须用任务替换它,但我不知道如何.

- visual studio tell me that  FromAsyncPattern is obselete and i have to replace it with tasks but i don't know how .

感谢您的帮助

ps:我知道这与WPF不完全相关....但是:p

ps : i know it's not related exactly to WPF .... but :p

推荐答案

这是我的尝试

   private async Task<List<AdherantListResult>> getAdherantsList(string filter)
        {
            using (var ctx = ContextFactory.ObtainContext())
            {

                var lst = from adh in ctx.ADHERANTS.Include("INSCRIPTIONS")

                          select new AdherantListResult()
                          {
                              Personne = new AdherantListRow()
                              {

                                  ID_ADHERANT = adh.ID_ADHERANT,
                                  ADH_NOM = adh.ADH_NOM,
                                  ADH_PRENOM = adh.ADH_PRENOM,
                                  ADH_SEXE = adh.ADH_SEXE,
                                  ADH_PHOTO = adh.ADH_PHOTO
                              }
                              ,
                              INSCRIPTIONS = adh.INSCRIPTIONS
                          };



                if (filter != "")
                    lst = lst.Where(a => a.Personne.ADH_NOM.ToUpper().StartsWith(filter.ToUpper()));
                return await lst.ToListAsync();

            };


        }



  void SetuprxFilter(TextBox textBox, ItemsControl list)
        {
            var inputObservable = from evt in Observable.FromEventPattern<TextChangedEventHandler, TextChangedEventArgs>
                (h => textBox.TextChanged += h, h => textBox.TextChanged -= h)
                                  select ((TextBox)evt.Sender).Text;

            var throttledInput = inputObservable.Throttle(TimeSpan.FromSeconds(.2)).DistinctUntilChanged();
            //var throttledInput = inputObservable;


            var loopupCallObservable = getAdherantsList(SearchTextBox.Text).ToObservable();

            var matches = from input in throttledInput
                          from found in loopupCallObservable(input).TakeUntil(throttledInput)
                          select found;

            matches.ObserveOnDispatcher().Subscribe(match =>
            {
                ShowHideMatchList(match, list);
            });
        }


   


但是我在粗体行上显示语法错误:方法名称已执行

but i have a syntax error on the bold line saying : Method Name Excpected



这篇关于需要一些帮助以适应旧的RX代码段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆