2015-07-01 35 views
0

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

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,TxtBoxE2,文本......等等

如何将我从文本框的数据

在此先感谢

+0

将它们添加到列表中,并在需要时循环使用 –

回答

1

您可以重复执行MyStackPanel.Children,因为它是regular collection(执行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 
      } 
     } 

不过我建议你阅读有关DataBindingMVVM pattern

+0

感谢@Anton sizikov其工作 –

0

这可以通过几种方式完成。

  1. 您可以使用VisualTreeHelper向下钻取。
  2. 你可以尝试下面的太

    文本框TB = MyStackPanel.Children [1]作为文本框;

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

+0

感谢@alfah为我工作 –

相关问题