如何在多个条件下使用 CollectionView 在网格中进行搜索?
How can I use search in the grid using CollectionView with multiple conditions?
我有文本框和组合框以及一个 GridView,我想用所有控件(组合框和文本框)过滤网格的某些列,我有这段代码 return 一个视图用一个条件过滤(文本框)到自定义列。
备注:我没有使用MVVM模式。
GridView.ItemsSource = MyList.ToList();
ListCollectionView view = (ListCollectionView)CollectionViewSource.GetDefaultView(MyList);
view.Filter = delegate (object item) { return (item as User).Name.Contains(Name_txt.Text); };
GridView.ItemsSource = view;
public class User
{
public Id { get; set; }
public Name { get; set; }
}
如何使用多个条件(输入)过滤数据网格列?
您应该将所有条件添加到 Filter
谓词,例如:
view.Filter = delegate (object item)
{
User user = item as User;
if (user == null)
return false;
return user.Name.Contains(Name_txt.Text)
&& comboBox1.SelectedItem == ?
&& ...;
};
我有文本框和组合框以及一个 GridView,我想用所有控件(组合框和文本框)过滤网格的某些列,我有这段代码 return 一个视图用一个条件过滤(文本框)到自定义列。
备注:我没有使用MVVM模式。
GridView.ItemsSource = MyList.ToList();
ListCollectionView view = (ListCollectionView)CollectionViewSource.GetDefaultView(MyList);
view.Filter = delegate (object item) { return (item as User).Name.Contains(Name_txt.Text); };
GridView.ItemsSource = view;
public class User
{
public Id { get; set; }
public Name { get; set; }
}
如何使用多个条件(输入)过滤数据网格列?
您应该将所有条件添加到 Filter
谓词,例如:
view.Filter = delegate (object item)
{
User user = item as User;
if (user == null)
return false;
return user.Name.Contains(Name_txt.Text)
&& comboBox1.SelectedItem == ?
&& ...;
};