我有一个带有用户可排序列的DataGrid . ItemSorce绑定到应用默认排序的CollectionViewSource . CollectionViewSource又绑定到ObservableCollection . 我想在屏幕首次加载时选择第一个项目 . 设置SelectedIndex不起作用,因为我将SelectedItem绑定到最初为null的属性,并且我需要将绑定设置为双向 .
我无法将绑定到SelectedItem的属性设置为第一个项目,因为集合在视图侧排序,我不知道第一个项目是什么 .
请帮忙 .
1 回答
我不确定这对你有用,但你可以尝试:
为ViewModel命名(如果有的话),以便按名称访问它;
将事件处理程序注册到DataGrid的Loaded事件;
在处理程序中通过
var firstItem = YourDataGrid.Items.FirstOrDefault() as YourModel;
获取DataGrid的第一项将ViewModel的
SelectedItem
设置为我们的项目've got in point 3. ' YourViewModel.SelectedItem = firstItem;' . 如果SelectedItem在更改时通知ui,也就是可观察的,则应更新UI .