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 :

Afficher les Attributs d'une class dans listView "en temps reel"


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut Afficher les Attributs d'une class dans listView "en temps reel"
    Bonjour,

    -j'ai une class MyClass avec beaucoup d'attributs (env 30..) chaque attributs est calculé via méthodes (dont certains peuvent prendre plusieurs secondes)
    -j'ai une interface en WPF avec une listView

    j'ai besoin que quand je clique sur un button cela calcule tous les attributs de MyClass en parallèle avec des threads et que ca ajoute dans la listView l'attribut calculé (ne pas attendre de tout calculer pour afficher dans la listview)

    mais j'arrive pas réaliser le truc .. je suis pas sur de concevoir le truc comme il faut ..

    pour ajouter dans une listView par exemple je ferai :

    listView.Items.Add(new MyClass{ Attribut1 = "test", Attribut2 = "123132" , Attribut3 = "5616"});

    le problème c'est qu'ici dans l'exemple les attributs de MyClass sont déjà tous calculer hors moi ils le sont pas encore..

    je sais pas si vous avez compris mon problème ..
    j'essaye de faire une méthode dans ma class Myclass qui calcule tous les attributs et ajoute chaques attributs dans la viewlist a chaque fois qu'il vient d'être calculé .. je n'y arrive pas ..d'ailleurs en écrivant cela je me dis que c'est peut être pas logique ...

    besoin de vos conseils svp merci

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Pour éviter les confusion parle de propriétés et non d'attributs, qui correspondent à autre chose en C#.

    Il suffit que ta classe implémente l'interface INotifyPropertyChanged. Lorsque les champs de tes objets seront initialisés l'interface en sera informée et se mettra à jour.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en modifiant depuis un thread par contre ca risque de planter, auquel cas il faudra passer par dispatcher ou un truc dans le genre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Un exemple de code :
    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
     
        public class Message:INotifyPropertyChanged
        {
            public event PropertyChangedEventHandler PropertyChanged;
     
            protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
            {
                var handler = PropertyChanged;
                if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
            }
     
            private string _content;
            public string Content
            {
                get { return _content; }
                set
                {
                    if(_content == value) return;
                    _content = value;
                    // Si [CallerMemberName] est disponible pas besoin de préciser l'appelant
                    OnPropertyChanged("Content"); 
                }
            }
        }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    merci je vais creuser de ce coté

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2016, 10h23
  2. Réponses: 1
    Dernier message: 01/06/2009, 10h56
  3. afficher les données d'une requête dans une ListView
    Par modafine dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/12/2008, 04h44
  4. utiliser les attribut d'une classe dans une autre classe
    Par kaissaoui dans le forum Langage
    Réponses: 11
    Dernier message: 18/07/2007, 15h13
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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