Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用代码在CollectionVIewSource中选择特定记录_C#_Wpf_Mvvm_Entity Framework 6 - Fatal编程技术网

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

C# 使用代码在CollectionVIewSource中选择特定记录,c#,wpf,mvvm,entity-framework-6,C#,Wpf,Mvvm,Entity Framework 6,嗨。我有一个应该是简单的问题,这显然超出了我的理解范围。如何获取collectionViewSource以选择特定记录 我试过这个: private object Select_CommandExecute(object param) { // Select * From Signups where Tag = '2'; var select = context.signups.Where(s => s.tag == 2); return signupsViewSo

嗨。我有一个应该是简单的问题,这显然超出了我的理解范围。如何获取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);
}   
但它所做的只是清除所有字段。知道我是怎么做的吗?
无论我输入什么数字,结果都是一样的。

我想过滤器就是你要找的。下面是一个使用过滤器的示例代码

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();
 }   
}

希望有帮助。

不确定是否可以将查询传递到MoveCurrentTo?但正如文档所述,传入的参数应该是表示该项的对象。在这种情况下,您应该使用FirstOrDefault而不是Where,然后在将其传递到MoveCurrentTo之前检查select是否为null。@KingKing-相同的结果。如果我可以问一下的话,您将如何搜索行值?使用集合视图是否是解决此问题的正确方法?当您说“清除所有字段”时是什么意思?你的意思是取消选择当前选定的行吗?@MikeStrobel是的。它就是这样做的。如果我使用的是文本框,它们在单击按钮时都变为空白