使用代码在CollectionVIewSource中选择特定记录

本文关键字:选择 记录 CollectionVIewSource 代码 | 更新日期: 2023-09-27 18:28:02

Hie。我有一个简单的问题,显然摆在我的面前。如何获得collectionViewSource来选择特定的记录?

我试过这个:

private object Select_CommandExecute(object param)
{
    // Select * From Signups where Tag = '2';
    var select = context.signups.Where(s => s.tag == 2);
    return signupsViewSource.View.MoveCurrentTo(select);
}   

但它所做的只是清除所有字段。知道我是怎么做的吗?不管我输入什么数字,结果总是一样的。

使用代码在CollectionVIewSource中选择特定记录

我认为Filter就是您想要的。下面是一个使用Filter的示例代码。

IList<Employer> employers;
ICollectionView _employerView;
private string _filterString=string.Empty;
public Window1()
{
   InitializeComponent();
   employers = GetCustomers();
   _employerView = CollectionViewSource.GetDefaultView(employers);
   _employerView.Filter = EmployerFilter;
}
public bool EmployerFilter(object item)
{
   Employer employer = item as Employer;
   return employer.Name.ToLower().StartsWith(_filterString.ToLower());
}
public string FilterString
{
   get { return _filterString; }
   set{
       _filterString = value; 
       OnPropertyChanged("FilterString");
       _employerView.Refresh();
 }   
}

希望得到帮助。