0

このメソッドを使用してデータを取得しています

 private void getNews(int cat_id, int page)
    {
        this.progress.Visibility = Visibility.Visible;
        var m = new SharpGIS.GZipWebClient();
        Microsoft.Phone.Reactive.Observable.FromEvent<DownloadStringCompletedEventArgs>(m, "DownloadStringCompleted").Subscribe(l =>
        {
            try
            {
                //List<NewsKeys> deserialized = JsonConvert.DeserializeObject<List<NewsKeys>>(r.EventArgs.Result);
                ObservableCollection<NewsKeys> deserialized = JsonConvert.DeserializeObject<List<NewsKeys>>(l.EventArgs.Result);

                foreach (NewsKeys item in deserialized)
                {
                    items.Add(new NewsKeys { nId = item.nId, title = item.title, shortDesc = item.shortDesc, fullDesc = item.fullDesc, tags = item.tags, smallPic = item.smallPic, bigPic = item.bigPic, video = item.video, audio = item.audio, youtube = item.youtube, doc = item.doc, date_create = item.date_create, date_modify = item.date_modify, date_publish = item.date_publish, catId = item.catId, viewOrder = item.viewOrder, viewCount = item.viewCount, viewStatus = item.viewStatus, viewHome = item.viewHome, uId = item.uId, uFname = item.uFname });
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sorry, Some unexpected error.");
            }
        });
        m.DownloadStringAsync(new Uri(Resource.NEWS_API+cat_id+"&page="+page));
    }

私が得るエラーは

エラー 1 ラムダ式を型 'System.IObserver>' に変換できません。デリゲート型 C:\Users\Adodis\Documents\Visual Studio 2010\Projects\TV\NewsListPage.xaml.cs 51 133 ではないためです。

すべての修正を試みましたが、この問題を修正できませんでした。別のクラスの別のメソッドで同じブロックを使用していますが、正常に動作していますが、このクラスのこのメソッドが私を殺しています。これについてのアイデアがあれば、私を助けてください。

前もって感謝します。

4

1 に答える 1

0

これを試してください(SelectSubscribe操作を分離しました):

var m = new SharpGIS.GZipWebClient();

Observable.FromEvent<DownloadStringCompletedEventArgs>(m, "DownloadStringCompleted")
          .Select(l => l.EventArgs.Result)
          .Subscribe(res =>
              {
                  try
                  {
                      var deserialized = JsonConvert.DeserializeObject<List<NewsKeys>>(res);

                      foreach (NewsKeys item in deserialized)
                      {
                          items.Add(
                              new NewsKeys
                                  {
                                      nId = item.nId,
                                      title = item.title,
                                      shortDesc = item.shortDesc,
                                      fullDesc = item.fullDesc,
                                      tags = item.tags,
                                      smallPic = item.smallPic,
                                      bigPic = item.bigPic,
                                      video = item.video,
                                      audio = item.audio,
                                      youtube = item.youtube,
                                      doc = item.doc,
                                      date_create = item.date_create,
                                      date_modify = item.date_modify,
                                      date_publish = item.date_publish,
                                      catId = item.catId,
                                      viewOrder = item.viewOrder,
                                      viewCount = item.viewCount,
                                      viewStatus = item.viewStatus,
                                      viewHome = item.viewHome,
                                      uId = item.uId,
                                      uFname = item.uFname
                                  });
                      }
                  }
                  catch (Exception)
                  {
                      MessageBox.Show("Sorry, Some unexpected error.");
                  }
              });

m.DownloadStringAsync(new Uri("Resource.NEWS_API" + cat_id + "&page=" + page));
于 2013-03-13T13:22:06.373 に答える