Visual Studio 中的基本 Winforms 数据绑定(设计器模式)
Basic Winforms Databinding in Visual Studio (designer mode)
我似乎无法让基本的数据绑定在 WinForms 设计器中工作。 (使用 VS2012)
- 我创建了一个名为 DatabindTest.
的新 Win Forms 应用程序项目
- 我在这个项目中添加了一个名为 Class1.cs.
的 class
- 在这个 class 中,我创建了一个名为
MyProperty
的 (String) 属性 以及一个将 MyProperty
设置为 "abc" 的构造函数。
- 我构建解决方案。
- 使用 Form1 设计器,我向表单添加了一个文本框 (
textBox1
)。
- 在
textBox1
的属性中,我展开 DataBindings 并打开“高级”对话框。
- 我展开绑定下拉列表,然后单击 添加项目数据源...,然后 select 对象 数据源.然后我展开
DatabindTest
节点和 select Class1
作为数据对象。
- 我确认 Binding 字段现在显示 "class1BindingSource - MyProperty"(如预期)。
- 在 Form1.cs
Form1
class 的开头,我创建了一个新的 Class1 实例(见下面的代码)。
- 此时,我构建并启动程序。我希望在文本框中看到 "abc",但它是空的。
我做错了什么?
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?
}
}
您应该设置 class1BindingSource
的 DataSource
:
class1BindingSource.ِDataSource = c1;
如果您查看设计器为您的文本框和数据绑定生成的代码,您将看到如下代码:
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text",
this.class1BindingSource, "MyProperty", true));
如你所见,class1BindingSource
是数据绑定的数据源,你应该将数据传递给它的DataSource
,以显示在Text
属性的textBox1
.
我似乎无法让基本的数据绑定在 WinForms 设计器中工作。 (使用 VS2012)
- 我创建了一个名为 DatabindTest. 的新 Win Forms 应用程序项目
- 我在这个项目中添加了一个名为 Class1.cs. 的 class
- 在这个 class 中,我创建了一个名为
MyProperty
的 (String) 属性 以及一个将MyProperty
设置为 "abc" 的构造函数。 - 我构建解决方案。
- 使用 Form1 设计器,我向表单添加了一个文本框 (
textBox1
)。 - 在
textBox1
的属性中,我展开 DataBindings 并打开“高级”对话框。 - 我展开绑定下拉列表,然后单击 添加项目数据源...,然后 select 对象 数据源.然后我展开
DatabindTest
节点和 selectClass1
作为数据对象。 - 我确认 Binding 字段现在显示 "class1BindingSource - MyProperty"(如预期)。
- 在 Form1.cs
Form1
class 的开头,我创建了一个新的 Class1 实例(见下面的代码)。 - 此时,我构建并启动程序。我希望在文本框中看到 "abc",但它是空的。
我做错了什么?
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?
}
}
您应该设置 class1BindingSource
的 DataSource
:
class1BindingSource.ِDataSource = c1;
如果您查看设计器为您的文本框和数据绑定生成的代码,您将看到如下代码:
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text",
this.class1BindingSource, "MyProperty", true));
如你所见,class1BindingSource
是数据绑定的数据源,你应该将数据传递给它的DataSource
,以显示在Text
属性的textBox1
.