我将ListBox数据绑定到用户列表(集合):
usersListBox.DataSource = null; usersListBox.DataSource = _users; usersListBox.DisplayMember = "Name"; usersListBox.ValueMember = "Id";
现在我希望所选项目的属性显示在不同的文本框中,所以我进行绑定:
nameTextBox.DataBindings.Add("Text",usersListBox.SelectedItem,"Name"); loginTextBox.DataBindings.Add("Text","Login");
当表单加载时,我可以看到所选项目的值出现在文本框中,但是当列表框中的选定项目发生更改时,文本框中的值仍然相同.我是否必须捕获列表框的selectedItemChanged并重复绑定文本框?或者我错过了一些文本框中的值和值应该随更改所选项目而改变?
解决方法
如果有人需要回答:您必须创建绑定源对象并为其分配列表框和文本框:
usersBindingSource = new BindingSource(); usersBindingSource.DataSource = _presenter.Users; usersListBox.DataSource = usersBindingSource; usersListBox.DisplayMember = "Name"; usersListBox.ValueMember = "Id"; nameTextBox.DataBindings.Add("Text",usersBindingSource,"Name",true,DataSourceUpdateMode.OnPropertyChanged); loginTextBox.DataBindings.Add("Text","Login",DataSourceUpdateMode.OnPropertyChanged);