У меня есть поле со списком, привязанное к источнику данных (clientInfoBindingSource) для выбранного элемента и текста, я использую автоматически созданный Навигатор привязки для другого источника данных (totalsBindingSource) и для
this.totalsBindingSource.CurrentChanged += new System.EventHandler(this.updateClientInfo);
должно обновить текущий объект для источника привязки информации клиента.
private void updateClientInfo(object sender, EventArgs e)
{
clientInfoBindingSource.Position = clientInfoBindingSource.Find("ClientID",ClientIDTextBox.Text);
}
В последнем элементе списка корректно обновляются все мои текстовые поля, но раскрывающийся список программного обеспечения будет пустым.
Вот автоматически сгенерированный код для выпадающего списка
//
// softwareComboBox
//
this.softwareComboBox.DataBindings.Add(new System.Windows.Forms.Binding("SelectedItem", this.clientInfoBindingSource, "Software", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.softwareComboBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.clientInfoBindingSource, "Software", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.softwareComboBox.FormattingEnabled = true;
this.softwareComboBox.Location = new System.Drawing.Point(106, 234);
this.softwareComboBox.Name = "softwareComboBox";
this.softwareComboBox.Size = new System.Drawing.Size(220, 21);
this.softwareComboBox.TabIndex = 23;
Любые указатели в правильном направлении.
Этот источник данных связан с набором данных, который был автоматически сгенерирован с сервера SQL.
Для заполнения выпадающего списка при загрузке основной формы я делаю
this.clientSoftwareTableAdapter.Fill(this.clientsDataSet.ClientSoftware);
softwareComboBox.Items.AddRange(this.clientscDataSet.ClientSoftware.Select(a => a.Software).ToArray());
РЕДАКТИРОВАТЬ - измененный код выше, чтобы использовать DataSourceUpdateMode.OnPropertyChanged, но это не влияло на поведение.