我有一個帶3個文本框和1個組合框的經典窗體。 Combobox顯示用戶列表,3個文本框應包含有關組合框中所選用戶的詳細信息。對於選定的用戶,我有一個特殊的屬性(如下所示),我用它作爲數據源。只有在第一次運行時纔可以。當顯示窗體時,更改組合框中的用戶不起作用。帶有數據綁定的C#文本框沒有更新
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;
}
}
我錯過了什麼?數據綁定有什麼問題?
什麼是組合框數據源更新模式設置爲? – jac
Combobox數據源類型是[Object](http://msdn.microsoft.com/en-us/library/x8160f6f.aspx),所以它不能有更新模式,或者? – Tomask
我錯過了你直接使用一個對象進行綁定。問題在於併發管理器。看看這個答案對你有幫助。 http://stackoverflow.com/questions/2209290/binding-textboxes-to-properties-of-a-combobox-selecteditem – jac