BindingSource.ResetBindings не работает, если не указано «true» - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть сетка, связанная с BindingSource (которая, в свою очередь, связана с List<T>). Когда я изменяю базовые данные List<T> и затем вызываю:

bs.ResetBindings(false);

сетка не обновляется. Но если я позвоню:

bs.ResetBindings(true);

it обновляется . Мой код сейчас работает, но я все еще озадачен, почему это необходимо. В соответствии с MSDN параметр ResetBindings должен быть установлен на

true , если схема данных изменилась; false если изменились только значения

Я, конечно, не менял никакой схемы данных ... так зачем мне true ?

1 Ответ

0 голосов
/ 30 марта 2012

Если у вас есть два типа: кошка и собака, которые оба происходят от животных.Это не будет работать должным образом:

из Designer.cs

animalBindingSource1.DataSource = typeof(Animal);

, а затем, например, в Form_Load

List<Cat> cats = getCats();
animalBindingSource1.DataSource = cats;

Попробуйте использовать BindingList, например

animalBindingSource1.DataSource = new BindingList<Animal>(cats);

Разместите свой код, если он не работает.Вероятно, нет ничего плохого в devexpress gridcontrol.

...