Последний элемент в bindingSource не обновляет поле со списком - PullRequest
0 голосов
/ 13 января 2010

У меня есть поле со списком, привязанное к источнику данных (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, но это не влияло на поведение.

Ответы [ 3 ]

1 голос
/ 16 января 2010

Краткий обзор: я бы попытался установить DataSourceUpdateMode на OnPropertyChanged

0 голосов
/ 20 января 2010

Я не знаю, если вопрос все еще действителен, но вы пробовали:

softwareComboBox.DataSource = this.clientsDataSet.
                                      ClientSoftware.
                                         Select(a => a.Software).ToArray();

вместо добавления элементов вручную?

0 голосов
/ 20 января 2010

Я признал поражение и просто заменим поле со списком на текстовое поле, делая этот ответ, чтобы отметить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...