如何从windowsphone 8.1中动态添加的文本框中获取数据

本文关键字:文本 获取 数据 添加 动态 windowsphone | 更新日期: 2023-09-27 18:00:32

我正在开发一个应用程序。在这篇文章中,我想从动态添加的文本框中获取数据。下面是我的代码

for (int i = 0; i < result.Count; i++)
    {
        TextBox TxtBoxU = new TextBox() { Width = 30 };
        TextBox TxtBoxE = new TextBox() { Width = 20 };
        RadioButton radioButton1 = new RadioButton();

        RadioButton radioButton2 = new RadioButton();
        TextBlock tb1 = new TextBlock();
        TextBlock tb2 = new TextBlock();
        TextBlock tb3 = new TextBlock();
        TxtBoxU.Name = "TextBoxU" + i.ToString();
        TxtBoxE.Name = "TextBoxE" + i.ToString();

        tb1.FontSize = 20;
        tb2.FontSize = 20;
        tb3.FontSize = 20;
        tb1.Name = "tb1" + i.ToString();
        tb2.Name = "tb2" + i.ToString();
        tb3.Name = "tb3" + i.ToString();
        tb1.Text = "name " + (i + 1).ToString() + " : ";
        tb2.Text = "Age : ";
        tb3.Text = "Gender : ";
        radioButton1.Content = "Male";
        radioButton1.GroupName = "Gender";
        radioButton2.Content = "Female";
        radioButton2.GroupName = "Gender";
        MyStackPanel.Children.Add(tb1);
        MyStackPanel.Children.Add(TxtBoxU);
        MyStackPanel.Children.Add(tb2);
        MyStackPanel.Children.Add(TxtBoxE);
        MyStackPanel.Children.Add(tb3);
        MyStackPanel.Children.Add(radioButton1);
        MyStackPanel.Children.Add(radioButton2);
    }

在上面的代码中,我想从TxtBoxU1、TxtBoxE1、TxtBoxU2、TxtBox E2,。。。。。。也是如此

我如何从文本框中获取数据

提前感谢

如何从windowsphone 8.1中动态添加的文本框中获取数据

您可以遍历MyStackPanel.Children,因为它是一个常规集合(实现IEnumerable)。

        foreach (var child in MyStackPanel.Children)
        {
            if (!(child is TextBox))
            {
                continue;
            }
            var textbox = child as TextBox;
            if (textbox.Name == "TextBoxU1")
            {
                var text = textbox.Text; //whatever you want to do here
            }
        }

不过,我建议您阅读有关DataBinding和MVVM模式的内容。

这可以通过多种方式实现。

  1. 您可以使用VisualTreeHelper进行深入研究
  2. 你也可以试试下面的

    TextBox tb=MyStackPanel.Children[1]作为TextBox;

索引的顺序与您输入的顺序相同。