选择已排序的DataGrid

时间:2016-06-15 14:46:56

标签: c# wpf datagrid

我有一个带有用户可排序列的DataGrid。 ItemSorce绑定到应用默认排序的CollectionViewSource。 CollectionViewSource又绑定到ObservableCollection。我想在屏幕首次加载时选择第一个项目。 设置SelectedIndex不起作用,因为我将SelectedItem绑定到最初为null的属性,我需要将绑定设置为双向。

我无法将绑定到SelectedItem的属性设置为第一个项目,因为该集合在视图侧排序,我不知道第一个项目是什么。

请帮助。

1 个答案:

答案 0 :(得分:0)

我不确定这对你有用,但你可以尝试:

  1. 为您的ViewModel命名(如果有的话),以便您可以通过其名称访问它;
  2. 将事件处理程序注册到DataGrid的Loaded事件;
  3. 在处理程序中,通过var firstItem = YourDataGrid.Items.FirstOrDefault() as YourModel;
  4. 获取DataGrid的第一项
  5. 将ViewModel的SelectedItem设置为我们在第3点中获得的项目.'YourViewModel.SelectedItem = firstItem;'。如果SelectedItem在ui发生变化时通知ui,也就是可观察的,那么你的UI应该更新。