Adr*_*fin 6 c# data-binding textbox listbox winforms
我将ListBox数据绑定到用户列表(集合):
usersListBox.DataSource = null;
usersListBox.DataSource = _users;
usersListBox.DisplayMember = "Name";
usersListBox.ValueMember = "Id";
Run Code Online (Sandbox Code Playgroud)
现在我希望所选项目的属性显示在不同的文本框中,所以我进行绑定:
nameTextBox.DataBindings.Add("Text", usersListBox.SelectedItem, "Name");
loginTextBox.DataBindings.Add("Text", usersListBox.SelectedItem, "Login");
Run Code Online (Sandbox Code Playgroud)
当表单加载时,我可以看到所选项目的值出现在文本框中,但是当列表框中的选定项目发生更改时,文本框中的值仍然相同.我是否必须捕获列表框的selectedItemChanged并重复绑定文本框?或者我遗漏了一些东西,文本框中的值应该随着所选项目的变化而改变?
Adr*_*fin 13
如果有人需要回答:您必须创建绑定源对象并为其分配列表框和文本框:
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", usersBindingSource, "Login", true, DataSourceUpdateMode.OnPropertyChanged);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9006 次 |
| 最近记录: |