2017-01-24 1 views
0

Я борюсь с принятием изменений в моем datagridview.Принять изменения в datagridview как выбранный элемент в изменении списка

У меня есть listbox и datagridview. Изменения в datagridview зависят от выбранного индекса, который выбирается из списка. Однако каждый раз, когда я выбираю другой элемент, элементы datagridview возвращаются к исходному виду/списку.

Мой вопрос: Как я могу принимать/записывать изменения обратно в мой datatable или предотвращать обновление datagridview каждый раз, когда я выбираю элемент из списка?

Код для моего события изменения ListBox является:

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     DataRow[] result = ds.Tables["AssessmentItems"].Select("GroupId = " + listBox1.SelectedIndex); 

     var newTable = result.CopyToDataTable(); 
     BindingSource bindSource = new BindingSource(); 
     bindSource.DataSource = newTable; 
     dataGridView1.DataSource = bindSource; 
    } 
+0

Я думаю, вы хотите отфильтровать источник, не обновляя его. правильно? – Badiparmagi

+0

100% правильный. А затем экспортируйте/сохраните datagridview, потому что последний столбец - это поле со списком с параметрами PASS & FAIL. – Bennelito

ответ

0

так что если вы хотите экспортировать свой источник, не обновляйте его, отфильтруйте его. BindingSource имеет .Filtermethod, который поможет вам. измените свое событие на это. сделанный!

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    BindingSource bindSource = new BindingSource(); 
    bindSource.DataSource = yourOrginalSource; 
    dataGridView1.DataSource = bindSource; 
    //set your bind source filter 
    string myFilter = "GroupId = " + listBox1.SelectedIndex; 
    source.Filter = myFilter; 
} 
+0

Badiparmagi. Спасибо за помощь. Ты мужчина! Оно работает!!! – Bennelito

0
dataGridView1.databind(); 

потребность в призвал к обновлению в GridView для новых изменений я думаю.

0

Только что установленный Фильтр Недвижимость bindingsource. Но вам нужно объявить bindingsource, как вы можете использовать любой метод в вашем классе.

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    bindSource.Filter = "GroupId = " + listBox1.SelectedIndex; 
} 
+0

Икрам Тургунбаев. Спасибо за помощь. Оно работает!!! – Bennelito

Смежные вопросы