Zrobiłem to w C# -

 foreach (Control ctl in this.groupBox3.Controls)
        {
            if ((ctl is Textbox) && (ctl.Name.Substring(0, 1) != "l"))
            {
                Textbox tmp= (Textbox)ctl;
                tmp.text = "whatever";

Próbuję zrobić coś podobnego w WPF, ale tym razem chcę znaleźć pole tekstowe na podstawie ciągu.

Więc spróbowałem

TextBox temp = (TextBox).Findcontrol("txtboxNumbers");

Ale skarży się, że "(Pole tekstowe)" jest typem, ale jest używany jak zmienna i nie może znaleźć metody Findcontrol :'(

2
Batista 16 luty 2012, 17:32

2 odpowiedzi

Najlepsza odpowiedź

Oczywiście nie możesz. Robiąc to

(TextBox).Findcontrol("txtboxNumbers");

Próbujesz wywołać metodę Findcontrol na Type. Zamiast tego spróbuj (w oknie lub kontrolce pliku *.cs):

TextBox oTextBox = FindName("txtboxNumbers") as TextBox;
3
Kamil Lach 16 luty 2012, 17:38

Możesz znaleźć kontrolkę za pomocą this.FindControl:

    TextBox txt = this.FindControl("txtboxNumbers") as TextBox;

    // check if the control was found
    if(txt != null)
    {
       txt.Text = "whatever you want";
    }
1
Schiavini 16 luty 2012, 17:49