Я нашел этот замечательный пост о фильтрации в сетке данных ( Фильтр DataGrid в WPF ), и до сих пор он работал нормально. Но у меня есть небольшая проблема по этому поводу. Это чувствительно к регистру. Поскольку я не разбираюсь в "Предикате", мне нужна ваша помощь здесь.
У меня есть список (allProductRows), который содержит модель "ProductRows" [ID, artNr, ProductName]
ex: [2,123, "Software Alpha"]
myпоисковый запрос здесь:
private void searchBox_TextChanged(object sender, TextChangedEventArgs e)
{
filterDataGrid(tb_searchBox.Text);
}
/// <summary>
/// Filter DataGrid to specific Term (atm Case Sensitive)
/// </summary>
/// <param name="searchTerm">SearchTerm String</param>
private void filterDataGrid(string searchTerm)
{
var _itemSourceList = new CollectionViewSource() { Source = allProductRows };
ICollectionView Itemlist = _itemSourceList.View;
var myFilter = new Predicate<object>(item => ((ProductRow)item).ProductName.Contains(searchTerm));
Itemlist.Filter = myFilter;
dg_products.ItemsSource = Itemlist;
}
Благодаря @ Wiimax за код выше
(причина, по которой он находится в отдельном пустоте,из-за другого выполнения из другого места)
В этом состоянии все, что я ввожу в текстовое поле, корректно фильтруется, но оно чувствительно к регистру.