【发布时间】:2012-06-05 09:56:43
【问题描述】:
这是http://blogs.msdn.com/b/vinsibal/archive/2009/04/07/5-random-gotchas-with-the-wpf-datagrid.aspx的摘录:
5.数据源项应实现 IEditableObject 以获得事务性编辑功能。
如果您不熟悉 IEditableObject,请参阅此 MSDN 文章 其中有一个很好的解释和代码示例。 DataGrid 已经出炉 通过 IEditableObject 进行事务编辑的功能 界面。当您开始编辑单元格时,DataGrid 进入单元格 编辑模式和行编辑模式。这意味着你 可以取消/提交单元格以及取消/提交行。例如,我 编辑单元格 0 并按 Tab 键转到下一个单元格。单元格 0 提交时 按标签。我开始在单元格 1 中输入并意识到我想取消 操作。我按下“Esc”,它会还原单元格 1。我现在意识到我 想取消整个操作,所以我再次按“Esc”,现在单元格 0 恢复到原来的值。
即使没有实现 IEditableObject,我也会得到相同的事务行为。我错过了什么?
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
public string Description { get; set; }
}
People = new List<Person> {
new Person(){FirstName = "fname", LastName = "lname", Description = "description"}
};
<DataGrid ItemsSource="{Binding Path=People}" />
【问题讨论】:
标签: wpf datagrid ieditableobject