我正在努力接受对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;
}
答案 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;
}