Добавить пустую строку в WPF DataGrid сразу после добавления нового элемента - PullRequest
0 голосов
/ 06 июля 2018

По умолчанию DataGrid работает, когда я щелкаю по пустой строке, также известной как NewItemPlaceholder, затем добавляется новая строка, и пустая строка исчезает, пока я не выберу другую строку. Я использую событие DataGrid.InitializingNewItem , чтобы установить начальные значения для новой строки, чтобы в новом элементе были заполнены все столбцы. У меня сложное содержимое ячеек, и редактирование ячеек не создаст для меня новую пустую строку. Но все же я должен выбрать другую строку для появления пустой строки. Я попытался выбрать другую строку программно, но это не поможет.

Есть ли способ показать пустую строку сразу после добавления нового элемента?

PS: это поведение также создает проблему, когда я удаляю все строки и использую пустую строку для создания новой строки. Тогда у меня нет других строк для выбора, и пустая строка исчезает навсегда.

PSS: есть похожий вопрос с КОДОМ и ИЗОБРАЖЕНИЯ и без ответа Добавить новую строку сразу после добавления нового элемента

1 Ответ

0 голосов
/ 20 июля 2018

Вы также можете сформировать свой новый элемент в методе обратного вызова InitializingNewItem , используя свойство e.NewItem , чтобы вы могли иметь правильный элемент при фиксации редактирования.

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; };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...