Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Chào anh Long, em muốn sử dụng chức năng Filtering trong ListView mà không được:
lvSupplier.ItemsSource = DataProvivder.Instance.Data.NHACUNGCAPs.Select(p => p);
//Lấy ra view từ ItemSource
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lvSupplier.ItemsSource);
this.Dispatcher.Invoke(() => view.Filter = SupplierFilter);
#region Method Search
private bool SupplierFilter(Object obj)
{
if(String.IsNullOrEmpty(txtFilter.Text))
{
return true;
}
else
{
return ((obj as NHACUNGCAP).TENNHACUNGCAP.IndexOf(txtFilter.Text, StringComparison.OrdinalIgnoreCase) >= 0);
}
}
#endregion
#region Sự kiện của TextBox Search
private void txtFilter_TextChanged(object sender, TextChangedEventArgs e)
{
CollectionViewSource.GetDefaultView(lvSupplier.ItemsSource).Refresh();
}
#endregion
Em đã thêm invoke vào rồi nhưng không được. Mong anh và mọi người giúp đỡ em. Cảm ơn anh
Filter theo DataSource làm sao anh?
bạn đừng filter trên view thế này. ItemSrouce của bạn mà lên 10k record là chết queo. Bạn nên filter chính cái datasource của nó ấy
format lại code