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 Presentation Foundation Discussion :

Binding d'un array dans un DataGrid


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 097
    Par défaut Binding d'un array dans un DataGrid
    Bonjour,

    J'ai un array avec une dimension non fixe ( qui peux changer à chaque fois ).
    Je crée les colonnes suivant la dimension de cette array.

    Malheureusement, je ne suis plus en Winform et donc ajouter des données "facilement".

    Peut-on binder par exemple

    Colonne 0 => array[0]
    Colonne 1 => array[1]
    Colonne 2 => array[2]

    Merci de votre aide.
    Cordialement.
    F.

  2. #2
    Membre Expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 165
    Par défaut
    Si tu es sur du dynamique faut passer par une collection type list. Si tu as 3 colonnes,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var myAL = new ArrayList();
    myAL.Add("Hello");
    myAL.Add("World");
    myAL.Add("!");

  3. #3
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 097
    Par défaut
    Citation Envoyé par GreatDeveloperOnizuka Voir le message
    Si tu es sur du dynamique faut passer par une collection type list. Si tu as 3 colonnes,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var myAL = new ArrayList();
    myAL.Add("Hello");
    myAL.Add("World");
    myAL.Add("!");
    D'accord. Je vais voir !
    Merci.
    F.

  4. #4
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 097
    Par défaut
    Pour plus de précision.

    Ma structure de classe est la suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Resultat_item
            {
                public Resultat_item( int iNbre )
                {
                    Voie_Valeur = new double[iNbre];
                }
     
                public int Indice { get; set; }
                public DateTime TimeStamp { get; set; }
     
                public double Valeur { get; set; }
                public double[] Voie_Valeur { get; set; }
            }
    Ce qui est prévu, c'est :

    Colonne 1 : TimeStamp
    Colonne 2 : separator
    Colonne 3 : Valeur
    Colonne 4 : separator
    Colonne 5 ~ N : Voie_Value[i]

    Est ce possible, si oui, comment ?

    Merci.
    F.

  5. #5
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 097
    Par défaut
    Citation Envoyé par GreatDeveloperOnizuka Voir le message
    Je comprends pas tout mais pourquoi ça serait pas possible? Tu peux dire quels résultats tu souhaites au final?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var list = new List<Resultat_item>();
    list.Add(new Resultat_item(2));
    list.Add(new Resultat_item(3));
    Alors, oui, mais comment tu peux dire, quelle donnée va sur quelle colonne ?

    Ps : Je crée toutes les colonnes dynamiquement.
    Donc, binder les premiere colonnes aux données telles que : TimeStamp et Valeur. C'est facile pour moi.
    Mais binder les autres colonnes... non

  6. #6
    Membre Expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 165
    Par défaut
    Citation Envoyé par Flow_75 Voir le message
    Alors, oui, mais comment tu peux dire, quelle donnée va sur quelle colonne ?

    Ps : Je crée toutes les colonnes dynamiquement.
    Donc, binder les premiere colonnes aux données telles que : TimeStamp et Valeur. C'est facile pour moi.
    Mais binder les autres colonnes... non
    OK c'est plus un dictionnaire qu'il faudrait alors. Un truc dans le genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var dico = new Dictionary<string, object>();
    dico.Add("TimeStamp", monObjet);
    dico.Add("Valeur", 24);

  7. #7
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 097
    Par défaut
    Bon, le binding est encore plus simple.

    Pour binder cette structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Resultat_item
            {
                public Resultat_item( int iNbre )
                {
                    Voie_Valeur = new double[iNbre];
                }
     
                public int Indice { get; set; }
                public DateTime TimeStamp { get; set; }
     
                public double Valeur { get; set; }
                public double[] Voie_Valeur { get; set; }
            }
    Et surtout pour binder le tableau Voie_Valeur, il "suffit" de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(int i = 0; i < Voie_Valeur.Length; ++i)
                {
                    coltrigger = new DataGridTextColumn();
                    coltrigger.Binding = new Binding( "Voie_Valeur[" + i + "]" );
     
                    coltrigger.Header = "Voie_Valeur[" + i + "]";
                    theGrid.Columns.Add( coltrigger ); 
                }
    Et pouf, ca marche ! <3


    Source : https://stackoverflow.com/questions/...ng-in-datagrid

  8. #8
    Membre Expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 165
    Par défaut
    OK tu cherchais à bind une structure à un datagrid. Si tu ne disais pas clairement le composant, ça risquait d'être dur de le deviner.

Discussions similaires

  1. [Débutant] WPF Binding d'un combobox dans un Datagrid
    Par hageshii dans le forum Développement Windows
    Réponses: 0
    Dernier message: 03/10/2017, 10h31
  2. [Débutant] Binding de propriété définie dans un datagrid
    Par MoThA dans le forum C#
    Réponses: 3
    Dernier message: 03/03/2014, 15h11
  3. WPF Bind add new item dans une DataGrid
    Par draco951 dans le forum C#
    Réponses: 12
    Dernier message: 05/02/2013, 08h06
  4. Afficher le contenu d'un ARRAY dans DATAGRID
    Par luilui dans le forum Flex
    Réponses: 3
    Dernier message: 19/05/2009, 00h55
  5. Réponses: 2
    Dernier message: 21/08/2006, 21h27

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