2013-03-11 3 views
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

Я испробовал все исправления, но не смог исправить эту проблему. Я использую тот же блок в другом методе в другом классе, он работает нормально, но этот метод в этом классе убивает меня. Пожалуйста, помогите мне, если у вас есть идея по этому поводу.

Заранее спасибо.

ответ

0

Попробуйте это (я отделил Select и Subscribe операции):

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)); 
Смежные вопросы