将当前移动到数据网格

MoveCurrentTo DataGrid

加载某个位置的客户列表后,我想 select 将特定客户作为当前项目。当我尝试移动到当前项目时,没有项目被 selected。我已经(通过调试)验证了我要移动到的项目存在。

如果我移动到当前项目

(CustomerList.MoveCurrentTo(CustomerList.CurrentItem) //it works but is senseless.
CustomerList is an ICollectionView.

我的问题是"How do I move the current item focus to a specific item I choose?"。

CustomerList = new CollectionView ( _service.GetCustomers().Where(l => l.LocationID == customer.LocationID));
var item = CustomerList.Cast<AlarmPermit.Entities.Customer>().Where(l => l.BRKey == 52151).Single();
CustomerList.MoveCurrentTo(item);

问题似乎是我使用了 CollectionView 而不是派生自 class 的 class。 (谢谢@R.Richards)。 MSDN 文档指示不应直接使用 CollectionView。

将集合从 CollectionView 更改为 ListCollectionView 后,代码有效。 CustomerList 仍然是一个 ICollectionView,但我将 ListCollectionView 对象分配给它。

修改后的代码如下:

CustomerList = new ListCollectionView ( _service.GetCustomers().Where(l => l.LocationID == customer.LocationID).ToList());
var item = CustomerList.Cast<AlarmPermit.Entities.Customer>().Where(l => l.BRKey == 52151).Single();
CustomerList.MoveCurrentTo(item);