MoveCurrentTo DataGrid

时间:2017-02-03 19:22:10

标签: c# wpf mvvm datagrid prism-6

在我加载某个位置的客户列表后,我想选择一个特定客户作为当前项目。当我尝试移动到当前项目时,没有选择任何项目。我已经验证(通过调试)我想移动的项目存在。

如果我转到当前项目

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

我的问题是"如何将当前项目焦点移动到我选择的特定项目?"。

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

1 个答案:

答案 0 :(得分:0)

问题似乎是我使用了CollectionView而不是派生自该类的类。 (谢谢@ 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);