windows phone 8.1 如何从动态添加的文本框中获取数据?
how to get data from dynamically added text boxes in 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,......等等
如何从文本框中获取数据
提前致谢
这可以通过多种方式完成。
- 您可以使用
VisualTreeHelper
向下钻取。
您也可以尝试以下方法
文本框 tb = MyStackPanel.Children[1] 作为文本框;
索引与您输入的顺序相同。
您可以遍历 MyStackPanel.Children
,因为它是 regular collection (implements 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 and MVVM pattern 的内容。
我正在开发一个应用程序。在此我想从动态添加的文本框中获取数据。下面是我的代码
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,......等等
如何从文本框中获取数据
提前致谢
这可以通过多种方式完成。
- 您可以使用
VisualTreeHelper
向下钻取。 您也可以尝试以下方法
文本框 tb = MyStackPanel.Children[1] 作为文本框;
索引与您输入的顺序相同。
您可以遍历 MyStackPanel.Children
,因为它是 regular collection (implements 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 and MVVM pattern 的内容。