目前,我正在将我的comboboxes数据源设置为:
comboBox1.DataSource = _team;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";Team是ListItemModel类型的泛型列表,如下所示:
public class ListItemModel
{
private string _name;
private short _id;
public string Name
{
get
{
return this._name;
}
}
public short ID
{
get
{
return this._id;
}
}
public ListItemModel(string name, short id)
{
this._name = name;
this._id = id;
}
}然后,我尝试将其作为数据库:
comboBox1.DataBindings.Add("SelectedValue", _person.Person, "TeamId", true, DataSourceUpdateMode.OnPropertyChanged);我的数据源(模型)设置好了:
public class PersonViewModel : INotifyPropertyChanged
{
public Person Person { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
var handler = PropertyChanged;
if (handler != null) handler(this, e);
}
}我能够正确填充组合框,OnPropertyChanged事件实际上正在工作,因为我可以看到数据正确更改。
这个问题有两个方面:
1)在初始加载/设置组合框时,没有设置selectedvalue,即使我已经对其进行了数据绑定。
2)如果我更改了组合框中的选择,然后失去了焦点,它不会保留选定的值,也不会显示任何选定的内容。当我看到TeamId正确更改时,OnPropertyChanged正在工作。
我想知道当涉及到数据绑定组合框时,我错过了什么。
https://stackoverflow.com/questions/44550168
复制相似问题