2017-07-06 66 views
-1

我一直在到處尋找,我只是不能讓它.. WPF DataGrid的過濾器我有一個簡單DataGrid通過文本框

<DataGrid Name="myGrid" HorizontalAlignment="Left" Height="399" 
        Margin="272,150,0,0" VerticalAlignment="Top" Width="735"/> 

當我的形式加載。我有這個功能,填補數據網格:

public MainWindow() 
{ 
    InitializeComponent(); 
    myGrid.ItemsSource = datatble; 
} 

我有一個TextBox名「txtSearch」我的目標是過濾DataGrid和查找包含txtSearch.Text所有行(並隱藏其他行)

有人可以提供一個例子嗎?

+0

有你想要的或所有字段篩選的專業呢? –

+0

@RomanoZumbé我想過濾每個字段 – user3673720

+0

可能的重複https://stackoverflow.com/questions/15568325/filter-a-datagrid-in-wpf – user3292642

回答

0

您可以將DataViewRowFilter屬性設置爲過濾器表達式。這是如何過濾DataTable

下面是應該給你的想法一個基本的例子:

public partial class MainWindow : Window 
{ 
    DataTable _dataTable; 
    public MainWindow() 
    { 
     InitializeComponent(); 
     _dataTable = new DataTable(); 
     _dataTable.Columns.Add(new DataColumn("Name")); 
     _dataTable.Columns.Add(new DataColumn("Id")); 
     _dataTable.Rows.Add("First", "1"); 
     _dataTable.Rows.Add("Second", "2"); 
     myGrid.ItemsSource = _dataTable.DefaultView; 
    } 

    private void txtSearch_TextChanged(object sender, TextChangedEventArgs e) 
    { 
     string filter = txtSearch.Text; 
     if (string.IsNullOrEmpty(filter)) 
      _dataTable.DefaultView.RowFilter = null; 
     else 
      _dataTable.DefaultView.RowFilter = string.Format("Name Like '%{0}%' OR Id Like '%{0}%'", filter); 
    } 
}