Visual Studio中的基本Winforms数据绑定(设计器模式)

时间:2016-06-27 22:43:27

标签: c# winforms visual-studio-2012 data-binding

我似乎无法在WinForms设计器中使用基本数据绑定。 (使用VS2012)

  1. 我创建了一个名为 DatabindTest 的新Win Forms应用程序项目。
  2. 在这个项目中,我添加了一个名为 Class1.cs
  3. 的类
  4. 在这个类中,我创建一个名为MyProperty的(String)属性以及将MyProperty设置为“abc”的构造函数。
  5. 我构建解决方案。
  6. 使用Form1设计器,我将一个文本框添加到表单(textBox1)。
  7. textBox1的属性中,展开DataBindings并打开“高级”对话框。 enter image description here
  8. 我展开了Binding下拉菜单,然后点击添加项目数据源... ,然后选择对象数据源。然后我展开DatabindTest节点并选择Class1作为数据对象。 enter image description here
  9. 我确认Binding字段现在显示“class1BindingSource - MyProperty”(正如预期的那样)。
  10. Form1类开头的 Form1.cs 中,我创建了一个新的Class1实例(请参阅下面的代码)。
  11. 此时,我构建并启动该程序。我希望在文本框中看到“abc”,但它是空的。
  12. 我做错了什么?

    public partial class Form1 : Form
    {
        Class1 c1 = new Class1();
        public Form1()
        {
            InitializeComponent();
            //this.textBox1.Text = c1.MyProperty;   //if I uncomment this line, 
                                                    //"abc" appears in textBox1
                                                    //so why not through databinding?
        }
    }
    

1 个答案:

答案 0 :(得分:2)

您应该设置class1BindingSource的{​​{1}}:

class1BindingSource.ِDataSource = c1;

如果您查看设计器生成的文本框和数据绑定代码,您将看到如下代码:

this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text",
                               this.class1BindingSource, "MyProperty", true));

如您所见,class1BindingSource是数据绑定的数据源,您应该将数据传递到DataSource以显示Text textBox1属性。