将文本框动态添加到滚动查看器并从中检索数据

Dinamically add textboxes to a scrollviewer and retrieve data from them

我正在开发一个代表食谱书的 windows phone 应用程序,所以在 "add recipe" 页面上我想动态地添加两个代表成分名称和数量的文本框,如果用户决定添加新成分。 我的想法是将文本框放在滚动查看器元素中,但我无法弄清楚如何从代码中动态添加它们以及如何从添加的文本框中检索数据:如何命名它们以便我可以准确地检索数据知道先添加哪种成分,然后添加哪种成分等等?

Scrollviewer 没有 属性 直接添加元素,例如 stackpanel 和 grid 可以直接添加另一个元素作为子元素。 但是可以使用Scrollviewer的Content属性来实现。

首先将两个文本框添加到 Grid(ContentPanel) 中,然后将 Grid 设置为滚动查看器的内容

在后面的代码中:

TextBox tb1 = new TextBox();
            tb1.Name = "Name";
            tb1.Text = "Ingredient Name";

            TextBox tb2 = new TextBox();
            tb2.Name = "Quantity";
            tb2.Text = "Ingredient Quantity";

            Grid gd = new Grid();
            gd.Children.Add(tb1);
            gd.Children.Add(tb2);

            sc1.Content = gd;

在Window1.xaml

 <ScrollViewer x:Name="sc1">

        </ScrollViewer>