У меня есть ComboBox (Windows Forms), который привязан к списку.Он создан во время разработки.Когда содержимое списка изменяется, мой код вызывает функцию для обновления привязки данных. Это прекрасно работает для .NET 3.5 :
BindingData.SuspendBinding();
DataSource = null;
DataSource = BindingData;
BindingData.ResumeBinding();
Я перешел на .NET 4.0 и он перестал работать .В частности, после выполнения этого кода отладчик VS показывает, что BindingData.DataSource ссылается на список из 127 элементов, но свойство ComboBox Items содержит ноль элементов.
См. Этот вопрос SO по аналогичной теме: ComboBox ItemsСчетчик не соответствует источнику данных .
Я перепробовал все, что мог придумать.В настоящее время мой код выглядит следующим образом и все еще не работает:
BindingData.SuspendBinding();
DataSource = null;
DataSource = BindingData;
BindingData.ResumeBinding();
BindingContext Dummy = this.BindingContext;
Invalidate();
PerformLayout();
Я попытался переключиться с List на BindingList, но это не помогло.Мне пришлось переключиться с .NET 3.5 на .NET 4.0 против моей воли, так что это довольно сложно.Я уверен, что есть определенная последовательность, которая работает.Есть идеи?
Вот как я подключаю источник данных к ComboBox:
private BindingSource BindingData = new BindingSource();
BindingData.DataSource = Nodes;
DataSource = BindingData;
спасибо, Энди