2010-09-16 7 views
2

Je n'ai pas beaucoup d'expérience de WPF, et je le considère comme un moyen plus simple de baliser/coder l'interface utilisateur dans .net.Cadre réactif et conflits WPF?

J'ai installer le lastest version Rx et jouer à l'aide de l'application console sans aucun problème, quand je l'ai utilisé dans une application simple WPF, il semble que « Observable » est pas aimé par WPF ...

J'ai ajouté à la fois référence à: System.CoreEx System.Reactive

lorsque le type le bouton gestionnaire d'événements de clic, le pick-up VS heureusement intelligente la classe observable et ses membres statiques, cependant, quand le compiler, le « observable » devient inconnu au contexte. Si l'intelligence a disparu pour la classe ...

Si je supprime les deux références ci-dessus, et les rajoute à nouveau, l'intelligence le ramassera ... lors de la compilation, la même situation se reproduira ...

J'ai également installé la version silverlight de rx, pas toujours pas de chance, s'il vous plaît des conseils et de l'aide.

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

Le code commenté est la pièce qui cause problème ...

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; 

tout espace de noms refereced sont comme ci-dessus ...

+2

Veuillez donner un exemple court mais complet, y compris le message d'erreur. –

+0

J'utilise WPF et Rx ensemble tout le temps, donc ils sont compatibles. Manquez-vous un usage ou est-il ambigu? Vérifiez les avertissements du compilateur. –

+0

mis à jour avec des références de code et d'espace de noms, merci ... – ccppjava

Répondre

1

applications WPF utilisent le .NET 4 Client Profile par défaut , qui n'était pas supporté par Rx jusqu'à la dernière version. Modifier vos paramètres de projet pour utiliser le framework .NET 4 complet vous permettra de compiler.

+0

va essayer votre suggestion, merci beaucoup ... – ccppjava