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

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

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 095
    Points : 633
    Points
    633
    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 154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 154
    Points : 3 667
    Points
    3 667
    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 confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 095
    Points : 633
    Points
    633
    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.

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

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 095
    Points : 633
    Points
    633
    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.

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

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 095
    Points : 633
    Points
    633
    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 154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 154
    Points : 3 667
    Points
    3 667
    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 confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 095
    Points : 633
    Points
    633
    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 154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 154
    Points : 3 667
    Points
    3 667
    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, 11h31
  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, 16h11
  3. WPF Bind add new item dans une DataGrid
    Par draco951 dans le forum C#
    Réponses: 12
    Dernier message: 05/02/2013, 09h06
  4. Afficher le contenu d'un ARRAY dans DATAGRID
    Par luilui dans le forum Flex
    Réponses: 3
    Dernier message: 19/05/2009, 01h55
  5. Réponses: 2
    Dernier message: 21/08/2006, 22h27

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