none
WPF Affecter un nom à des TextBox créees par code pour pouvoir les utiliser plus loin dans la solution RRS feed

  • Question

  • Bonjour , ma question parait peut être bizzare mais je m'explique :

    Dans un projet WPF j'ai un DataGrid (Poste qui comprend une colonne intitule et une colonne Nombre de ressource (masquée))et un Textbox (Poste) :

    Sur l'évènement SelectionChanged du DataGrid, le TextBox Poste prend la valeur INTITULE du dataGrid et en fonction de la valeur de la colonne masquée Nombre de ressource (int) , créer le nombre voulu de textbox en dessous de la 1er.

      private void PostesDT_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                DataGrid dtg = (DataGrid)sender;
                int nbR = 0;
                if (dtg.SelectedItem is DataRowView row_Selected)
                {
                    PosteTxtBox.Text = row_Selected["PO_NOM"].ToString();
                    nbR = Convert.ToInt32(row_Selected["PO_RESSOURCES"].ToString());
                    for(int i = 0; i < nbR; i++)
                    {
                        SP1.Children.Add(new TextBox { Name = "TxtBox" + i });
                    }
                }
            }

    Je souhaiterais leur donner un nom qui les rendent utilisable par un autre control. Comme on le ferait en Xaml :

    TextBox x:name="TxtBox1".

    est-ce possible en modifiant ce code :

     SP1.Children.Add(new TextBox { Name = "TxtBox" + i });
    ou existe-t-il une autre solution ?


    JF Collombet ® CreateSpecificCulture

    dimanche 28 octobre 2018 12:44

Toutes les réponses

  • Bonjour Jean-Francois,

    bien evidemment c'est possible et c'est exactement le code que vous avez utiliser: 

    for (int i = 0; i < 10; i++)
    {
        TextBoxesContainer.Children.Add(new TextBox() { Name = $"textbox_{i}", Height=20, Width=50});
    }

    Cordialement,

    Mouad.

    Good Coding;

    lundi 29 octobre 2018 16:17