Реактивная структура и конфликты WPF? - PullRequest
2 голосов
/ 16 сентября 2010

У меня нет большого опыта работы с WPF, и я считаю его более простым способом разметки / кодирования пользовательского интерфейса в .net.

Я установил последний выпуск Rx и без проблем воспроизводил его с помощью консольного приложения. Когда я использовал его в простом приложении WPF, кажется, что «Наблюдаемый» не нравится WPF ...

Я добавил обе ссылки на: System.CoreEx System.Reactive

при вводе в обработчике события щелчка кнопки интеллектуальный VS с радостью подхватывает класс Observable и его статические члены, однако при его компиляции «Observable» становится неизвестным контексту. Также интеллект ушел для класса ...

Если я уберу две вышеупомянутые ссылки и добавлю их снова, интеллект подхватит их ... при компиляции такая же ситуация повторяется ...

Я также установил версию rx silverlight, не все же не удача, пожалуйста, совет и помощь.

    private void btnStart_Click(object sender, RoutedEventArgs e)
    {
        CheckBox[] chbServers = new CheckBox[] { chbMx1, chbMx2, chbMx3, chbMx4 };
        ListBox[] lbxFiles = new ListBox[] { listBox1, listBox2, listBox3, listBox4 };


        for (int i = 0; i < chbServers.Length; ++i)
        {
            if (chbServers[i].IsChecked == true)
            {
                string baseDir = string.Format(@"c:\maildrop\mx{0}", i + 1);
                if (Directory.Exists(baseDir))
                {
                    DirectoryInfo di = new DirectoryInfo(baseDir);
                    FileInfo[] fis = di.GetFiles("*.eml", SearchOption.AllDirectories);

                    //Observable.GenerateWithTime(
                    //    0,
                    //    index => index <= fis.Length,
                    //    index => index + 1,
                    //    index => fis[index].Name,
                    //    _ => TimeSpan.FromMilliseconds(300)
                    //    )
                    //    .ObserveOnDispatcher()
                    //    .Subscribe(name =>
                    //    {
                    //        // delete the file
                    //        lbxFiles[i].Items.Remove(name);
                    //    }); 
                }
            }
        }
    }

Код с комментариями - это тот кусок, который вызывает проблемы ...

using System;
using System.Collections.Generic;
using System.Disposables;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;

все упомянутые пространства имен такие же, как указано выше ...

1 Ответ

1 голос
/ 06 октября 2010

Приложения WPF по умолчанию используют клиентский профиль .NET 4, который не поддерживался Rx до последнего выпуска. Изменение параметров проекта для использования полной платформы .NET 4 позволит вам скомпилировать.

...