DataGrid篩選

適合數據源爲Binding的DataGrid,基本思路爲:

1. 新建一個DataTable,對數據源每個row進行檢索

2. 把符合條件的row信息加到新建的DataTable中

3. 將新建的DataTable作爲DataGrid的數據源

private void SearchPicker_TextChanged_1(object sender, TextChangedEventArgs e)
        {
            String strQuery = this.SearchPicker.Text;
            DataGrid dg=this.ContactList;
            DataTable dtTmp = new DataTable();

            for (int c = 0; c<dg.Columns.Count; c++)
            {
                dtTmp.Columns.Add(dg.Columns[c].Header.ToString(), typeof(String));
            }
            for (int i = 0; i < dtContact.Rows.Count; i++ )
            { 
                for (int j = 0; j<dtContact.Columns.Count; j++)
                {
                    if (dtContact.Rows[i][dg.Columns[j].Header.ToString()].ToString().ToLower().Contains(strQuery.ToLower()))
                    {
                        DataRow dr = dtTmp.NewRow();
                        //DataRow dr = new DataRow();
                        for (int c = 0; c < dtContact.Columns.Count; c++)
                        {
                            dr[dg.Columns[c].Header.ToString()] = dtContact.Rows[i][dg.Columns[c].Header.ToString()];
                        }
                        dtTmp.Rows.Add(dr);
                        break;
                    }
                }
            }
            this.ContactList.ItemsSource = dtTmp.DefaultView;
        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章