我有一个包含 3 个文本框和 1 个组合框的经典表单。组合框显示用户列表,3 个文本框应包含有关组合框中所选用户的详细信息。对于选定的用户,我有一个特殊属性(如下所示),我将其用作数据源。这只在第一次运行时没问题。显示表单时,在组合框中更改用户无效。
public partial class UserAdministration : Form
{
private readonly DataManager _dataManager = DataManager.Instance;
private User _selectedUser;
public UserAdministration()
{
InitializeComponent();
}
private void UserAdministration_Load(object sender, EventArgs e)
{
AddUsers();
textBoxName.DataBindings.Add("Text", _selectedUser, "Name");
textBoxSurname.DataBindings.Add("Text", _selectedUser, "Surname");
textBoxPassword.DataBindings.Add("Text", _selectedUser, "Password");
}
private void AddUsers()
{
var users = _dataManager.UserProvider.GetAll().Select(pair => pair.Value).ToList();
comboBoxUsers.DataSource = new BindingSource { DataSource = users };
comboBoxUsers.DisplayMember = "ListViewText";
if (users.Count > 0)
comboBoxUsers.SelectedIndex = 0;
}
private void comboBoxUsers_SelectedIndexChanged(object sender, EventArgs e)
{
_selectedUser = comboBoxUsers.SelectedItem as User;
}
}
我错过了什么?数据绑定(bind)有什么问题?
最佳答案
将您的数据源绑定(bind)到 cb 使用此代码:
comboBoxUsers.DataSource = users (directly to you datasource);
要将相同的数据绑定(bind)到文本框,请这样做:
textbox1.DataBindings.Add("Text", users, "username", true);
唯一的一点是,您需要将两个控件链接到同一个 ds 实例
关于具有数据绑定(bind)的 C# 文本框未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705629/