基本上,我有一个包含4列和许多行的datagrid视图。在顶部,我有一个组合框,其中有可供选择的类别,并且根据所选项目的不同,datagrid视图也会更改。
问题在于,当添加行时,我会再次添加相同的字符串(例如,基本短语),并且组合框列出了相同的字符串(因此,如果有4个单词属于基本短语,则组合框会显示4个基本短语)。我将附加我的代码以供更好地参考。
是否有更好的方法可以使用数组? 谢谢。
\usepackage{float}
答案 0 :(得分:0)
combox不应将整个表作为数据源,而应仅具有表的Distinct值。
List<string>wordsets = table.AsEnumerable().Select(x => x.Field<string>("WordSets")).Distinct().ToList();
comboBox1.DataSource = wordsets;
dataGridView1.DataSource = table.DefaultView;
现在,当您从组合中选择某些内容时,您无需构建单独的数据表,而只需为表变量设置DefaultView.RowFilter即可
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex > -1)
{
string word = comboBox1.SelectedItem.ToString();
table.DefaultView.RowFilter = "WordSets = '" + word + "'";
dataGridView1.DataSource = table.DefaultView;
}
}