Winforms数据绑定到定制类
本文关键字:数据绑定 Winforms | 更新日期: 2023-09-27 18:12:00
我试图将一些Winform对象绑定到自定义类,更具体地说,是我在代码中添加到表单中的自定义类的实例。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下面,许多控件只需要访问这些子类。
您可以使用控件(文本框,复选框…)的DataBindings属性来添加到特定控件的绑定。例如:
public Form1()
{
InitializeComponent();
TB_userName.DataBindings.Add("Text", userToBind, "name");
}
同样,IIRC,数据绑定只适用于属性,因此您首先需要相应地修改您的UserInfo
类。此外,如果您希望UI在修改代码中的对象时自动更新,则必须在自定义类中实现INotifyPropertyChanged。