C# WPF Datagrid的筛选
public static void SearchResult(DataGrid dg,string condition) { #region string code = string.Empty; DataView dv = dg.ItemsSource as DataView; //if (condition.Substring(0, 1) != "0" || Regex.IsMatch(condition, @"^[+-]?\d*[.]?\d*$")) { for (int i = 0; i < dv.Table.Columns.Count; i++) { if (dv.Table.Columns[i].DataType == typeof(System.Int32) || dv.Table.Columns[i].DataType == typeof(System.Byte)) { if (condition.Substring(0, 1) != "0" && Regex.IsMatch(condition, @"^[+-]?\d*[.]?\d*$")) { code += (string)dv.Table.Columns[i].ToString() + " = " + condition + " or "; } } else if (dv.Table.Columns[i].DataType == typeof(System.DateTime)) { try { code += (string)dv.Table.Columns[i].ToString() + " = '" + Convert.ToDateTime(condition) + "' or "; } catch (Exception) { } } else { code += (string)dv.Table.Columns[i].ToString() + " = '" + condition + "' or "; } } } if (!string.IsNullOrEmpty(code)) { code = code.Substring(0, code.Length - 3); MessageBox.Show(code); dv.RowFilter = code; //dv.Sort = "ID ASC"; dg.ItemsSource = dv; } #endregion //DataTable dv = (dg.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].ToString() == condition)//全匹配查询//row[i].ToString().Contains(condition)//模糊查询
// {
// dtNew.Rows.Add(row.ItemArray);
// break;
// }
// }
//}
//dg.ItemsSource = dtNew.DefaultView;
}