2011-06-12 3 views
2

Ce qui suit ne se compile pas sur les versions VS2010, SL5 et Reactive Extensions version 1.1.10605.1 (2011-06-05). 'System.Collections.Generic.IEnumerable' ne contient pas de définition pour 'ToObservable' et aucune méthode d'extension 'ToObservable' acceptant un premier argument de type 'System.Collections.Generic.IEnumerable' n'a été trouvée (vous êtes manque une directive à l'aide ou une référence d'assemblage?)Où se trouve la référence à IObservable

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 

public partial class MainPage : UserControl 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
} 


private void ButtonNormal_Click(object sender, RoutedEventArgs e) 
    { 
     //MyList.ItemsSource = GetModel(); 
     var items = new System.Collections.ObjectModel.ObservableCollection<string>(); 
     MyList.ItemsSource = items; 
     foreach (string item in GetModel()) 
      items.Add(item); 
    } 

    private void ButtonRx_Click(object sender, RoutedEventArgs e) 
    { 
     var items = new System.Collections.ObjectModel.ObservableCollection<string>(); 
     MyList.ItemsSource = items; 

     IObservable<string> observable = GetModel() 
      .ToObservable(System.Concurrency.Scheduler.NewThread); 
     observable.ObserveOnDispatcher().Subscribe(item => items.Add(item)); 
    } 
} 
+0

J'ai des références à mscorlib et system.reactive. Impossible de trouver System.Observable dans la liste des références fournie dans la fenêtre de référence d'ajout. – Picflight

Répondre

6

Essayez d'ajouter 'using System.Reactive.Linq'?

+0

Cela ressemble à ToObservable. Le type ou le nom d'espace de nom 'Concurrency' n'existe pas dans l'espace de noms 'System' (manque-t-il une référence d'assembly?) Cela ressemble à un dll de téléphone? – Picflight

+1

La concurrence est dans "System.Reactive.Concurrency". – Lugoues

0

peut-être vous n'êtes pas référentes/à l'aide à l'assemblée réactive?
Avez-vous référé le mscorlib.dll?
Il se peut également que vous deviez inclure le System.Observable.dll à votre projet.

2

Juste au cas où quelqu'un est intéressant c'est maintenant deprecaited et est namespace System.Observable