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

C# Discussion :

Structures de données et DataGridView [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Points : 55
    Points
    55
    Par défaut Structures de données et DataGridView
    Bonjour,

    Je débute en .NET (C#), et je souhaite créer un petit serveur proxy qui se contente d’écouter un port (avec TcpListener) et de transférer les octets reçu vers un serveur (avec TcpClient).

    La partie réseau fonctionne, maintenant je voudrais y ajouter une interface graphique permettant de monitorer les clients actuellement connectés :



    Et c’est là que ça se corse, j’ai créé un DataGridView et je ne vois pas bien comment manipuler les données de ce composant.

    J’ai vu qu’on pouvait binder une variable (DataGridView.DataSource) plutôt que de manipuler directement les données du DataGridView, mais je ne sais pas sous quelle forme stocker en mémoire la liste des clients connectés, il y a tellement de structures de données en C# : DataTable, DataSet, Array, List, Hashtable, Dictionary…

    Laquelle est la plus adaptée dans le cas présent ?

    Merci pour votre aide.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Bonjour,

    Je pense que c'est l'ObservableCollection<T>. Elle permet de notifier la vue à chaque fois qu'un objet est rajouté ou enlevé. Cela permet que le DGV se mette automatiquement à jour lors d'ajouts et de suppressions.
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    En gros, il faut créer une classe qui contient les données de chaque ligne. Si le DGV doit s'actualiser quand les données de ces objets changent, il faut implémenter l'interface INotifyPropertyChanged (exemples un peu partout sur le net).

    Ensuite tu crées une liste de ces objets, et tu affectes cette liste à la DataSource du DGV. Pour que le DGV prennent en compte les ajouts/suppressions dans la liste, il faut une liste qui déclenche des notifications, par exemple BindingList<T>

    Citation Envoyé par MaximePalmisano Voir le message
    Bonjour,

    Je pense que c'est l'ObservableCollection<T>. Elle permet de notifier la vue à chaque fois qu'un objet est rajouté ou enlevé. Cela permet que le DGV se mette automatiquement à jour lors d'ajouts et de suppressions.
    ObservableCollection<T> c'est pour WPF ; le DataGridView ne connait pas l'interface INotifyCollectionChanged, donc il ne réagira pas aux évènements. En Windows Forms il faut plutôt utiliser la classe BindingList<T>.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    J'ai lu le post mais pas regardé l'image :< Pas bien !

    En effet, ce que je te proposais était pour WPF (En WPF, le DGV écoute bien l'ObservableCollection non ?).
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    (En WPF, le DGV écoute bien l'ObservableCollection non ?).
    En WPF il n'y a pas de DataGridView
    Mais les contrôles de liste (ItemsControl/ComboBox/ListBox/ListView/DataGrid...) écoutent effectivement l'interface INotifyCollectionChanged

  6. #6
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Je suis sur le cul la... J'ai toujours parlé de DataGridView, même sur SL/WPF, comme un glandu ...

    On en apprend tous les jours ! En effet, je parlais donc d'un DataGrid
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer une structure de donnée dynamiquement ?
    Par Beaunico dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 09h34
  2. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 19h10
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 19h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 17h10

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