无法使用c#和XAML获取动态创建的textbox.button click事件上的文本数据

无法使用c#和XAML获取动态创建的textbox.button click事件上的文本数据,c#,wpf,C#,Wpf,我无法从c#/xaml中的文本框中获取文本。我正在运行两个方法-第一个方法创建一个stackpanel并向其中添加两个文本框,第二个方法仅用于从这两个文本框中获取文本并将其分配给我在别处定义的类对象。然而,当我试图获取textbox.text时,它说它无法识别我用于textbox对象的变量名。有人能提供我做错了什么的线索吗?这是我的密码 public void createstackpanel() { StackPanel myStackPanel = new Stack

我无法从c#/xaml中的文本框中获取文本。我正在运行两个方法-第一个方法创建一个stackpanel并向其中添加两个文本框,第二个方法仅用于从这两个文本框中获取文本并将其分配给我在别处定义的类对象。然而,当我试图获取textbox.text时,它说它无法识别我用于textbox对象的变量名。有人能提供我做错了什么的线索吗?这是我的密码

public void createstackpanel()
    {
        StackPanel myStackPanel = new StackPanel();
        myStackPanel.Orientation = Windows.UI.Xaml.Controls.Orientation.Vertical;

        MyTextBoxTextClass Text1 = new MyTextBoxTextClass ();

        TextBox tb1 = new TextBox();
        TextBox tb2 = new TextBox();

        tb1.Text = "My TextBox 1 Text";
        tb2.Text = "My TextBox 2 Text";                    

        myStackPanel.Children.Add(tb1);
        myStackPanel.Children.Add(tb2);        

    }


    private void CreateStackPanelButton_Click(object sender, RoutedEventArgs e)
    {                       
//This gets pressed first
        createstackpanel();           
    }        


private void SendTextToClass_Click(object sender, RoutedEventArgs e)
    {                       
       //This gets pressed second.  I have created the StoreMyText class elsewhere and it simply contains 2 properties - textbox1 and textbox2 (both strings)
        StoreMyText mytext = new StoreMyText();
        mytext.textbox1 = tb1.Text;
        mytext.textbox2 = tb2.Text;
    }

这里的问题是tb1.Text和tb2.Text未被识别。为什么?

tb1
tb2
createstackpanel
方法中声明。 无法在
SendTextToClass\u Click
方法中访问它们

另外,我认为在这种情况下使用动态创建的文本框不是doog的主意。代码的最终目标是什么

文本框示例列表:

// class level declaration:
List<TextBox> textboxes = new List<TextBox>();

// createstackpanel method:
textboxes.Add(new TextBox() { Text = "textbox #1" });
textboxes.Add(new TextBox() { Text = "textbox #2" });

// SendTextToClass_Click method:
// some operation with textboxes list
//类级别声明:
列表文本框=新列表();
//createstackpanel方法:
添加(newtextbox(){Text=“TextBox#1”});
添加(newtextbox(){Text=“TextBox#2”});
//SendTextToClass_单击方法:
//使用文本框列表的一些操作
声明

TextBox tb1;
TextBox tb2;
级别中的
createstackpanel()
函数外部

初始化


createstackpanel()
函数中。

那么如何通过单击按钮获取它们的信息呢?他们有没有办法公开这些数据?(我假设将该方法创建为pubilc方法可能会做到这一点…我错了:)/:()例如,您可以在类级别声明这些文本框。问题是我希望继续动态创建它们。该按钮的想法是用户能够继续创建新的文本框(不会有默认文本,而是他们自己输入的文本)。因此,我希望用户通过单击按钮的次数来控制文本框的数量使用列表并向其中添加新的textboxex。@General Dommer。为了回答你的问题,我为学习目的创建的应用程序是一个配方应用程序,它包含各种成分及其营养价值(碳水化合物、蛋白质等)。因此,对于每个额外的成分,我必须添加新的文本框(事实上,我在新的stackpanel中添加了8个新的文本框)。由于我不知道用户想要输入多少成分,我必须动态创建它们。根据下面的评论-该按钮的想法是用户能够继续创建新的文本框(不会有默认文本,但他们自己输入的文本)。因此,我希望用户能够通过单击按钮的次数来控制生成多少文本框更新我的答案。请参考,欢迎!。。很高兴,我帮了你……)
tb1 = new TextBox();
tb2 = new TextBox();