我到处搜寻,我无法做到..
我有一个简单的DataGrid
:
<DataGrid Name="myGrid" HorizontalAlignment="Left" Height="399"
Margin="272,150,0,0" VerticalAlignment="Top" Width="735"/>
当我的表单加载时我有这个函数来填充datagrid:
public MainWindow()
{
InitializeComponent();
myGrid.ItemsSource = datatble;
}
我有一个TextBox
名称“txtSearch”,我的目标是过滤数据网格并查找包含txtSearch.Text的所有行(并隐藏其他行)
有人可以提供一个例子吗?
答案 0 :(得分:0)
您可以将DataView
的{{3}}属性设置为过滤器表达式。这是您过滤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);
}
}