Где ссылка на IObservable - PullRequest
3 голосов
/ 12 июня 2011

Следующее не компилируется на VS2010, SL5 и Reactive Extensions версии 1.1.10605.1 (2011-06-05).

'System.Collections.Generic.IEnumerable' не содержит определения для 'ToObservable' и не найден метод расширения 'ToObservable', принимающий первый аргумент типа 'System.Collections.Generic.IEnumerable' (вы пропали директива об использовании или ссылка на сборку?)

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));
    }
}

Ответы [ 3 ]

7 голосов
/ 13 июня 2011

Попробуйте добавить 'using System.Reactive.Linq'?

2 голосов
/ 14 сентября 2011

На всякий случай, если кому-то интересно, это устарело и является пространством имен System.Observable

0 голосов
/ 12 июня 2011

может быть, вы не ссылаетесь на реактивную сборку?Вы ссылались на mscorlib.dll?Также может быть, что вам нужно включить System.Observable.dll в ваш проект.

...