IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Meilleur option application WPF + Service Windows


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Meilleur option application WPF + Service Windows
    Bonsoir à tous,

    J'aimerais avoir votre avis et quelques conseils concernant la réalisation de mon application.
    J'ai développé plusieurs applications C# en autodidacte, essentiellement sur du WinForm.

    Afin de voir d'autre chose, je suis passé récemment au WPF, je ne maitrise pas complètement, voir, pas énormément le Binding de donnée.

    Maintenant que le contexte est posé, j'ai une solution contenant 3 projets :
    • Une application WPF,
    • Un service Windows,
    • Une bibliothèque.


    Le but de la solution et de permettre la modification par le service des interfaces réseau de la machine, sans devoir lancer une application en Admin en permanence.

    La bibliothèque contient une classe permettant avec la quasi-totalité du code du service, cela me permet notamment de charger la nouvelle DLL lorsque je fais une mise à jour. Cette partie fonctionne.
    Elle contient également une deuxième classe utilisée par l'application et le service.


    L'application et le service dialogue en TCP via TcpListener et TcpClient. Chacun instancie un serveur et un client pour le dialogue.
    Cette partie fonctionne.

    Mon application possède une MainWindow avec un Frame permettant de gérer l'affichage de page. Seul le MainWindow instancie le serveur et client TCP.


    J'ai actuellement un souci et j'aimerais votre avis sur la façon de faire.

    Lorsque j'arrive sur une page que j'appelle "Adressage Direct", j'utilise une méthode statique de la MainWindow pour envoyer une demande au service.
    Le service me répond sans problème. Je dois ensuite avec cette donnée remplir une combo-Box qui est sur la page "Adressage Direct" actuellement ouverte.

    J'instancie une ObservableCollection à l'ouveture de la page pour le Bind avec la ComboBox.
    J'ai une méthode Static sur la page "Adressage Direct" qui permet à ma MainWindow, lors de la réponse du service de remplir cette collection.

    Voici le code de la page à ce stade.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public partial class AdressageDirect : Page
        {
            public string Sel_Combo { get; set; }
            public static ObservableCollection<string> ListCB { get; set; }
     
            public AdressageDirect()
            {
                InitializeComponent();
     
                ListCB = new ObservableCollection<string>();
                DataContext = this;
            }
     
            private void BT_Refresh_Click(object sender, RoutedEventArgs e)
            {
                MainWindow.DemandeInterface();
            }
     
            private void Page_Loaded(object sender, RoutedEventArgs e)
            {
                MainWindow.DemandeInterface();
            }
     
            public static void MAJ_CB()
            {
                ListCB = new ObservableCollection<string>(MainWindow.IPM.ListeNomInterfaces);
            }
        }
    Je bind de cette manière dans le XAML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ComboBox x:Name="CB_Interface" Margin="10,0" VerticalAlignment="Center" Grid.Column="1" FontSize="18" ItemsSource="{Binding Path=ListCB}" SelectedItem="{Binding Sel_Combo}"/>
    Lors de la mise à jour de la collection, en Debug, elle se remplit bien, mais la ComboBox ne bouge pas.
    Aucune erreur de liaison à première vue, car si j'ajoute lors de l'ouverture de la page une donnée à la collection, la combo-box l'affiche bien.

    Enfin, je me dis que je prends peux-être pas le problème dans le bon sens.

    J'aimerais votre avis sur mon problème, mais également selon vous, quand vous avez une application avec des "Pages". Comment réalisez-vous les liens entre l'application "Main" et les différentes pages ?
    J'espère avoir été clair ^^

    Merci à tous d'avance pour vos réponses et votre temps.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Points : 338
    Points
    338
    Par défaut oulbiez winform ou wpf pour Csharp avec Angular
    Les standards ont changé et il faut plutôt gérer le backend sous CSHARP avec de l'angular ou de l'asp net

Discussions similaires

  1. Application WPF ou Windows form
    Par lucas14570 dans le forum C#
    Réponses: 4
    Dernier message: 21/05/2013, 10h21
  2. Consommer un WCF à travers une application de service Windows
    Par Macin dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 11/01/2012, 10h25
  3. Application en service : Windows 2003
    Par RonanSUNmode dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 19/01/2009, 18h32
  4. Créer un service Windows (pour exécuter une application)
    Par drinkmilk dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 16/08/2007, 12h24
  5. Mettre une application access en service windows.
    Par chris_magic dans le forum Access
    Réponses: 11
    Dernier message: 11/07/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo