Имя: Пароль:
1C
1C 7.7
v7: C#. DataGridView и типизированный List: обновляются не все строки
0 megabax
 
08.10.12
09:42
Добрый день. Имеется DataGridView, который через BindingSource отображает типизированный List. Есть у меня кнопка, которая вырезает часть элемнтов списка:
Код C#
private void btnCutBeforeDate_Click(object sender, EventArgs e)
**
DateTime selDateTime = dtpBefore.Value;
int index = _priceSource.getIndexByDateTime(selDateTime);
_priceSource.BarPrices.RemoveRange(0, index - 1);
barPriceBindingSource.SuspendBinding();
barPriceBindingSource.DataSource = _priceSource.BarPrices;
barPriceBindingSource.ResumeBinding();
}


Проблема состоит в том, что таблица на экране не обновляется, точнее, обновляються строки только после выделенной строки, а что выше нее не обновляется. Подскажите плз, как елчить?
1 НаборДанных
 
08.10.12
09:48
(0)Там же все что выше удаляется или я что-то путаю? Update пробовал использовать?
2 НаборДанных
 
08.10.12
09:49
Точнее updateRow вроде... Ужас, 1С съело половину мозга....
3 megabax
 
08.10.12
16:47
2, нашел только метод Update у компонента DataGridView, и он не помогает:
       private void btnCutBeforeDate_Click(object sender, EventArgs e)
       {
           DateTime selDateTime = dtpBefore.Value;
           int index = _priceSource.getIndexByDateTime(selDateTime);
           _priceSource.BarPrices.RemoveRange(0, index - 1);
           barPriceBindingSource.SuspendBinding();
           barPriceBindingSource.DataSource = _priceSource.BarPrices;
           barPriceBindingSource.ResumeBinding();
           /*barPriceBindingSource.*/
           dgvPriceSource. Update();
       }

updateRow нету ни DataGridView, ни у BindingSource...
4 viramen
 
08.10.12
17:02
а если
barPriceBindingSource.DataSource = null;
barPriceBindingSource.DataSource = _priceSource.BarPrices;
5 megabax
 
08.10.12
17:08
4, а ведь помогло, спасибо.
Что так
       private void btnCutBeforeDate_Click(object sender, EventArgs e)
       {
           DateTime selDateTime = dtpBefore.Value;
           int index = _priceSource.getIndexByDateTime(selDateTime);
           _priceSource.BarPrices.RemoveRange(0, index - 1);
           barPriceBindingSource.SuspendBinding();
           barPriceBindingSource.DataSource = null;
           barPriceBindingSource.DataSource = _priceSource.BarPrices;
           //dgvPriceSource.Update();
           barPriceBindingSource.ResumeBinding();
           /*barPriceBindingSource.*/
           
       }

что так
       private void btnCutAfrerDate_Click(object sender, EventArgs e)
       {
           DateTime selDateTime = dtpBefore.Value;
           int index = _priceSource.getIndexByDateTime(selDateTime);
           _priceSource.BarPrices.RemoveRange(index, _priceSource.BarPrices.Count-index);
           barPriceBindingSource.SuspendBinding();
           barPriceBindingSource.DataSource = null;
           barPriceBindingSource.DataSource = _priceSource.BarPrices;
           barPriceBindingSource.ResumeBinding();
       }
отлчино работает!
Независимо от того, куда вы едете — это в гору и против ветра!