DataGrid的默认行为是,当我单击空白行(也称为NewItemPlaceholder)时,然后添加新行,并且空白行消失,直到我选择另一行。我使用 DataGrid.InitializingNewItem 事件为新行设置初始值,以便新项目填充所有列。我具有复杂的单元格内容,并且编辑单元格不会为我创建新的空白行。但是我仍然必须选择另一行才能显示空白行。我试图以编程方式选择其他行,但无济于事。
添加新项目后,有什么方法可以显示空白行吗?
PS:当我删除所有行并使用空白行创建新行时,此行为也会带来问题。然后我没有其他行可供选择,空白行将永远消失。
PSS:还有一个类似的问题,其中 CODE 和 IMAGES ,但没有答案unofficial documentation here
答案 0 :(得分:0)
您还可以使用 e.NewItem 属性在 InitializingNewItem 回调方法中对新项目进行成形,以便在提交编辑时获得正确的项目。
InitializingNewItem 首先由 BeginningEdit 事件触发。 请注意,要使NewItemPlaceholder出现,您还应该将DataGrid绑定到具有可声明的默认构造函数的可编辑集合,并将 DataGrid.CanUserAddRows 属性设置为true。
private bool _justCreatedNewItem;
dataGrid.BeginningEdit += (o, e) =>
{
if (_justCreatedNewItem)
{
dataGrid.CommitEdit(DataGridEditingUnit.Row, true);
_justCreatedNewItem = false;
}
};
dataGrid.InitializingNewItem += (o, e) => { _justCreatedNewItem = true; };