我有一个带有3个文本框和1个组合框的经典表格。 Combobox显示用户列表,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;
}
}
我错过了什么?数据绑定有什么问题?
答案 0 :(得分:2)
将您的数据源绑定到cb使用此代码:
comboBoxUsers.DataSource = users (directly to you datasource);
将相同的数据绑定到文本框,如下所示:
textbox1.DataBindings.Add("Text", users, "username", true);
唯一的一点是,您需要将两个控件链接到同一个ds实例
答案 1 :(得分:1)
我有一个只有一个文本框的表单,我想绑定到数据库列。
当我使用'属性'将该文本框数据绑定到一列的设置,它为我创建了bindingSource1
和表适配器。
当我点击“保存”按钮时,我只是添加了bindingSource1.EndEdit();
,然后将其正确保存到数据库中。