接受对数据网格视图的更改,因为列表框中的选定项目更改

时间:2017-01-24 11:07:34

标签: c# datagridview listbox

我正在努力接受对datagridview的更改。

我有一个列表框和一个datagridview。我的datagridview会根据从列表框中选择的所选索引进行更改。但是,每次选择不同的项目时,datagridview项目都会返回到原始视图/列表。

我的问题:我如何接受/将更改写回我的数据表,或者每当我从列表框中选择一个项目时阻止datagridview刷新?

我的列表框更改事件的代码是:

        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;
    }

3 个答案:

答案 0 :(得分:0)

dataGridView1.databind();

需要在gridview中调用我认为的新更改。

答案 1 :(得分:0)

只需设置bindingsource过滤器属性即可。但是您需要声明bindingsource,因为您可以使用类中的任何方法。

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

答案 2 :(得分:0)

所以如果你想导出你的源代码,不要刷新它,过滤它。 BindingSource.Filter method ,可以为您提供帮助。将您的活动更改为此。完成了!

 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;
}