C# WPF Datagrid,一旦创建,是否可以选择或关注行?

C# WPF Datagrid,一旦创建,是否可以选择或关注行?,c#,wpf,mvvm,datagrid,C#,Wpf,Mvvm,Datagrid,正如问题所说的那样 我喜欢创建的行在创建时被选中,因为用户可能希望在创建该行后对其进行处理 我通常通过ViewModel使用一个可观察的集合创建一行,一旦集合被添加,wpfdatagrid的ItemSource就会被刷新 我会张贴代码,如果必要的话 但是,如果有解决方案,可以在DataGrid视图中,也可以在MVVM中。我真的不在乎 感谢您的帮助首先,您需要将DataGrid的SelectedItem绑定到模型中的属性。我不记得SelectedItem的默认绑定模式是否为双向,但如果不是,请在绑

正如问题所说的那样

我喜欢创建的行在创建时被选中,因为用户可能希望在创建该行后对其进行处理

我通常通过ViewModel使用一个可观察的集合创建一行,一旦集合被添加,wpfdatagrid的ItemSource就会被刷新

我会张贴代码,如果必要的话

但是,如果有解决方案,可以在DataGrid视图中,也可以在MVVM中。我真的不在乎


感谢您的帮助

首先,您需要将DataGrid的SelectedItem绑定到模型中的属性。我不记得SelectedItem的默认绑定模式是否为双向,但如果不是,请在绑定中指定双向,以便可以在模型中设置其值

添加新记录时,需要存储对主键值的引用,然后在刷新ItemSource后,需要找到与存储的主键值匹配的对象

例如,如果您有一个整数主键:

int recordId = [value of primary key in new record]
Records = [select records from database]
GridItemSource = Records;
SelectedItem = Records.Where(x => x.RecordId == recordId).FirstOrDefault();

如果使用由标识列组成的主键,则需要在插入记录后立即获取新id。

将数据网格绑定到模型中的
SelectedItem
属性。在模型中添加项目时,将
SelectedItem
设置为新添加的项目。当然,使用SelectedItem属性是一种方法。谢谢