我试图将一些Winform对象绑定到一个自定义类,更具体地说是我在代码中添加到Form中的自定义类的一个实例。 C#,. NET 2010 Express。
例如,这是类的一个片段,以及UserInfoForm
public class UserInfo
{
[XmlAttribute]
public string name = "DefaultName";
[XmlAttribute]
public bool showTutorial = true;
[XmlAttribute]
public enum onCloseEvent = LastWindowClosedEvent.Exit;
}
public enum LastWindowClosedEvent
{
MainMenu,
Exit,
RunInBackground
}
public partial class Form1 : Form
{
UserInfo userToBind = new UserInfo();
TextBox TB_userName = new TextBox();
CheckBox CB_showTutorial = new CheckBox();
ComboBox DDB_onCloseEvent = new ComboBox();
public Form1()
{
InitializeComponent();
}
}
现在,我想将这些表单控件的值绑定到userToBind中各自的值,但没有运气。我能找到的所有教程都要么过时了(2002),要么将控件绑定到数据集或其他类型的数据库。
我显然忽视了一些事情,但我还没弄清楚是什么。
非常感谢您提供的任何信息。
更多信息:UserInfo设计为XML友好型,因此可以保存为用户配置文件。 UserInfo将包含其他自定义XML类,所有这些类都嵌套在UserInfo下,并且许多控件只需要访问这些子类。
答案 0 :(得分:16)
您可以使用控件的DataBindings属性(文本框,复选框...)将绑定添加到特定控件。例如:
public Form1()
{
InitializeComponent();
TB_userName.DataBindings.Add("Text", userToBind, "name");
}
另外,IIRC,数据绑定仅适用于properties,因此您首先需要相应地修改UserInfo
类。此外,如果您希望在代码中修改对象时自动更新UI,则必须在自定义类中实现INotifyPropertyChanged。