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 :

WPF Est-ce possible de parcourir un element tel que Grid ? ou creer un tableau de Bouton en C# ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut WPF Est-ce possible de parcourir un element tel que Grid ? ou creer un tableau de Bouton en C# ?
    Bonjour,

    Voila mon souci : Je réalise un démineur en WPF pour apprendre à mieux l'utiliser. Il y a peu je l'ai fais en mode console. Je peux le faire en WPF avec mes connaissances actuelles cependant c'est vraiment moche (la manière dont je le code) et ça ressemble plus à du bidouillage qu'autre chose parfois ...

    J'ai 25 boutons (bonne solution ? je pense pas) mis dans un Grid réparti en 5 colonnes et 5 lignes.

    Je traite chaque boutons au cas par cas et c'est pas vraiment cool ^^

    N'y a t-il pas un bon moyen pour traiter ça via un tableau se référent au Grid par exemple ?

    Je suis ouvert à toutes suggestions :]

    Merci à vous.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    a mon avis avec un visualtreehelper tu peux parser tes elements qui se trouvent dans la grid
    si tu les creer dynamiquement
    tu peux facilement les mettre dans un tableau syle object [][]

    sinon les indications de grid c''est que tu peux retrouver la col et le row d'un UIElement avec Grid.GetColumn ou Grid.GetRow

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut
    Merci je vais me pencher la dessus.

    EDIT : Ikeas, qu'est-ce que vous appelez "créer dynamiquement" ? Parce que, en ce qui me concerne, je ne vois pas comment créer les boutons à part avec l'outil visuel qui permet de cliquer pour les déposer là ou on veut... j'espère me faire comprendre.

    Je suppose que ce n'est pas dynamique ^^ Comment peut-on faire autrement ? Maintenant je vois à peu prés comment utiliser les Grid.Column et Grid.Row donc avec ça je pourrais peut-être bien arriver à mes fins.

    Merci d'avance.

    EDIT 2: En fait le must serait de pouvoir créer un tableau de bouton via le code C# mais est-ce possible ?

  4. #4
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 97
    Par défaut
    Bonjour,

    Voici un exemple de création dynamique.

    Code xaml :
    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
    <Grid x:Name="maGrid">
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
                <ColumnDefinition />
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
     
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
                <RowDefinition />
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>
        </Grid>
    Code behind en C#:
    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
    29
    30
    private void button_Click(object sender, EventArgs e)
            {
                Button button = (Button)sender;
                MessageBox.Show("Vous avez cliqué " + button.Tag.ToString());
            }
     
            public Window1()
            {
                InitializeComponent();
     
                for (int r = 0; r < 5; r++)
                {
                    for (int c = 0; c < 5; c++)
                    {
                        Button button = new Button();
     
                        //Texte du bouton
                        button.Content = r + "-" + c;
     
                        //Tag affiché lors d'un clic
                        button.Tag = r + "-" + c;
                        button.Click += new RoutedEventHandler(button_Click);
     
                        //Position dans la grid
                        Grid.SetRow(button, r);
                        Grid.SetColumn(button, c);
                        maGrid.Children.Add(button);
                    }
                }
            }
    Bonne continuation.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut
    très bien merci je vais refaire ça comme ça :]

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 97
    Par défaut
    Par contre ca ne respecte pas le pattern MVVM, mais pour débuter ca ira

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/06/2015, 18h58
  2. Réponses: 2
    Dernier message: 07/09/2010, 11h26
  3. Est il possible d'ajouter des composants WPF a un simple form?
    Par NoussaL dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 30/10/2008, 14h12
  4. Réponses: 13
    Dernier message: 13/08/2008, 16h55
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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