我本来打算做一个Excel的数据筛选,但是看了帖子,试了几种方法,还是没整出来,所以最后拖鞋了,用文本框,触发事件。哎,大佬勿喷
if (!string.IsNullOrEmpty(TxT.Text))
{
DataTable dv = (dataGrid_view.ItemsSource as DataView).Table;
DataTable dtNew = dv.Copy();
dtNew.Clear();
foreach (DataRow row in dv.Rows)
{
for (int i = 0; i < dv.Columns.Count; i++)
{
//这三个数据不参与筛选,所以他需要存在
if (row[i].Equals("")|| row[i].Equals("")|| row[i].Equals(""))
dtNew.Rows.Add(row.ItemArray);
if (row[i].ToString().Contains(TxT.Text))//全匹配查询//row[i].ToString().Contains(TxT.Text)//模糊查询row[i].ToString() == TxT.Text精确查询
{
//dv.Select("字段='字段中的数据条件'");
//dtNew.Rows.Add(row.Table.Columns["字段"].ToString().Contains("字段中的数据条件"));
dtNew.Rows.Add(row.ItemArray);
break;
}
}
}
//DataView可以做去重操作
DataView d1 = dtNew.DefaultView;
//这里相当于启动了重复功能
dtNew=d1.ToTable(true);
dataGrid_view.ItemsSource = dtNew.DefaultView;
}
else
{
dataGrid_view.ItemsSource = dataTable.DefaultView;
}
本文介绍如何在WPF应用中利用DataTable进行条件筛选和数据去重操作,通过文本框触发事件实现类似Excel的数据过滤功能。
503





