【发布时间】:2016-05-01 11:09:03
【问题描述】:
我很难将简单对象绑定到组合框,如下所示:
public partial class Planning : Form
{
private static BindingList<VisiteVisiteur> visiteurs = new BindingList<VisiteVisiteur>(Program.model.VisiteVisiteur.ToList());
public VisiteVisiteur visiteur = visiteurs.Last();
public Planning()
{
InitializeComponent();
comboBox1.DataSource = visiteurs;
comboBox1.DisplayMember = "Name";
comboBox1.DataBindings.Add("SelectedValue", visiteur, "", true, DataSourceUpdateMode.OnPropertyChanged);
我想绑定到整个 visiteur 对象,以便它随着组合框 selectedValue 的变化而更新。 目前, selectedValue 发生变化,但访问者对象没有变化。我在这里做错了什么?
解决方案: 使用 SelectedIndexChanged 事件更新 visiteur 变量
public partial class Planning : Form
{
private static BindingList<VisiteVisiteur> visiteurs = new BindingList<VisiteVisiteur>(Program.model.VisiteVisiteur.ToList());
public VisiteVisiteur visiteur = null;
public Planning()
{
InitializeComponent();
VisiteVisiteur visiteurTemp = visiteurs.Last();
comboBox1.SelectedIndexChanged += new System.EventHandler(comboBox1_SelectedIndexChanged);
comboBox1.DataSource = visiteurs;
comboBox1.DisplayMember = "Name";
comboBox1.SelectedItem = visiteurTemp;
}
public void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
visiteur = (VisiteVisiteur)comboBox1.SelectedItem;
}
【问题讨论】:
-
更改为
comboBox1.DataBindings.Add("SelectedValue", this, "visiteur", true, DataSourceUpdateMode.OnPropertyChanged); -
我已经尝试过并收到此错误:无法绑定到从 Object 创建的数据源上的属性或列访问者。
-
当前接受的答案是完全错误的。创建您的
visiteur属性,然后使用@Fabio 代码。
标签: c# winforms data-binding combobox