无法在静态上下文中访问非静态字段

时间:2018-10-02 10:38:50

标签: c# wpf

我的UserControl里面有一个StackPanel,其中我动态添加了另一个UserControl_1 1次以上。现在,这个子UserControl_1包含一个TextBox。 我想将子UserControl_1的{​​{1}}值放入父容器TextBox中。我怎么能够 ?

在包含UserControl的{​​{1}}中,我使用了此属性

UserControl_1

在上级UserControl中,我正在使用它来获取价值。

TextBox

显示的错误无法从静态上下文访问非静态字段

编辑:
基本上,我正在做的是多次加载或添加一个UserControl_1,其中包含一个TextBox到另一个父UserControl中。
现在,我想获取父USerControl中动态添加的UserControl_1的TextBox值。

1 个答案:

答案 0 :(得分:0)

一个UserControl可以有多个实例。您要从静态属性返回哪个实例的文本框的值?提示:您不知道。通过引用UserControl_1实例的引用来访问文本框

您说您在“父”(即容器)控件中使用此用户控件。然后,您必须在某个位置具有引用该控件的成员。

假设该成员简称为this.userControl_1,则可以使用户控件的string属性为非静态:

public string ProductNameValue
{
    get
    {
        return ProductNameBox.Text;
    }
}  

然后在包含控件中,执行以下操作:

var name = this.userControl_1.ProductNameValue;