Objective-c/cocoa提供了一种绑定形式,其中控件的属性(即文本框中的文本)可以绑定到对象的属性.我试图在C#w/.Net 3.5中复制此功能.
我在MyClass.cs文件中创建了以下非常简单的类:
class MyClass
{
private string myName;
public string MyName
{
get
{
return myName;
}
set
{
myName = value;
}
}
public MyClass()
{
myName = "Allen";
}
}
Run Code Online (Sandbox Code Playgroud)
我还创建了一个带有1个文本框和1个按钮的简单表单.我在表单代码中初始化了一个Myclass实例并构建了项目.使用Vs2008中的DataSource向导,我选择了基于对象创建数据源,并选择了MyClass程序集.这创建了一个数据源实体.我将文本框的数据绑定更改为此数据源; 但是,预期的结果(文本框的内容将是"allen")未实现.此外,将文本放入文本框不会更新对象的name属性.
我知道我在这里缺少一些基本的东西.在某些时候,我应该将我在表单代码中初始化的MyClass类的实例绑定到文本框,但是没有发生.我在网上看到的一切似乎都掩盖了使用DataBinding和一个对象(或者我完全没有标记),所以任何帮助都非常感激.
编辑:
利用我从答案中学到的东西,我查看了Visual Studio生成的代码,它具有以下内容:
this.myClassBindingSource.DataSource = typeof(BindingTest.MyClass);
Run Code Online (Sandbox Code Playgroud)
如果我评论出来并替代:
this.myClassBindingSource.DataSource = new MyClass();
Run Code Online (Sandbox Code Playgroud)
我得到了预期的行为.为什么VS生成的默认代码是这样的?假设这比工作方法更正确,我应该如何修改我的代码才能在VS生成的范围内工作?