问题确实如此......
我喜欢在创建时创建的行,因为用户可能希望在创建后对该行执行某些操作。
我通常通过ViewModel使用可观察的Collection创建一行,一旦添加了集合,WPF DataGrid的ItemSource就会刷新。
如有必要,我会发布代码。
但是,如果有解决方案,它可以在DataGrid的视图中,也可以在MVVM中。我真的不在乎。
感谢您的帮助
答案 0 :(得分:2)
首先,您需要将DataGrid的SelectedItem绑定到模型中的属性。我不记得SelectedItem的默认绑定模式是2路,但如果没有,请在绑定中指定2路,以便在模型中设置它的值。
添加新记录时,您需要存储对主键值的引用,然后在刷新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。