C# 无法访问静态上下文中的非静态字段

C# 无法访问静态上下文中的非静态字段,c#,wpf,C#,Wpf,我有一个UserControl在StackPanel中,我在其中动态添加了另一个UserControl\u 1超过1次。现在,这个子项UserControl\u 1包含一个文本框。 我想将子UserControl\u 1的TextBox值放入父容器UserControl。我该怎么办 在包含文本框的UserControl\u 1中,我使用了此属性 public static string ProductNameValue { get {

我有一个
UserControl
StackPanel
中,我在其中动态添加了另一个
UserControl\u 1
超过1次。现在,这个子项
UserControl\u 1
包含一个
文本框
。 我想将子
UserControl\u 1
TextBox
值放入父容器
UserControl
。我该怎么办

在包含
文本框的
UserControl\u 1
中,我使用了此属性

    public static string ProductNameValue
    {
        get
        {
            return ProductNameBox.Text;
        }
    }  
在父用户控件中,我使用它来获取值

    string a = UserControl_1.ProductNameValue; 
显示的错误无法从静态上下文访问非静态字段

编辑:
基本上,我正在做的是多次加载或添加一个UserControl,它包含一个文本框到另一个父UserControl中。

现在我想在父UserControl中获取动态添加的UserControl_1的文本框值。

一个UserControl可以有多个实例。您希望从静态属性返回哪个实例的textbox值?提示:你不知道。改为通过引用
UserControl\u 1
实例访问文本框

您说您正在“父”(即容器)控件中使用此usercontrol。然后必须有一个成员在某处引用该控件

假设将该成员简单地称为this.userControl\u 1
,则可以将用户控件的string属性设置为非静态:

public string ProductNameValue
{
    get
    {
        return ProductNameBox.Text;
    }
}  
然后在包含控件中,执行以下操作:

var name = this.userControl_1.ProductNameValue;

您需要
UserControl\u 1
-UserControl的实例。然后你就可以进入酒店了。对不起!没有理解你所说的:(但是创建UserControl_1的实例将创建一个新实例。在这种情况下,我无法按用户获取textbox的输入值?可能重复@SeM sir我不知道它是否重复:(先生!请您查看我的编辑我正在尝试做什么?我不知道如何实现您的解决方案?您的编辑不会改变任何东西。您需要对控件的引用才能获取其实例的文本框值。如果您“动态生成”控件(不要使用这个术语,在编程中,一切都是动态的,你的意思是在运行时创建控件吗?),然后您需要在某个位置存储对它们的引用。是的,我正在运行时添加..单击按钮!并希望获取用户将在单击按钮时输入回父控件的文本框值。因此,再次保存对您创建的控件的引用。