WPF DataGrid начать редактирование нового элемента - PullRequest
1 голос
/ 14 сентября 2010

У меня есть сетка данных с редактируемыми элементами, и у меня есть кнопка для создания нового экземпляра такого элемента.Сетка данных обновляется новым элементом, но я не могу выбрать недавно добавленный элемент и начать его редактирование.

Ниже приведен мой код:

  private void btnNewKenmerk_Click( object sender, RoutedEventArgs e )
  {
   Kenmerk newKenmerk = new Kenmerk(); // the item to add

   Kenmerken.Add( newKenmerk ); // this is an observablecollection. the datagrid (dgKenmerken) has this as itemssource

   // deselect all other items except our new kenmerk
   for( int i = 0; i < dgKenmerken.Items.Count; i++ )
   {
    Kenmerk kenmerk = ( Kenmerk )dgKenmerken.Items[ i ];
    DataGridRow dgRow = ( DataGridRow )dgKenmerken.ItemContainerGenerator.ContainerFromIndex( i );

    if( dgRow != null )
    {
     dgRow.IsSelected = ( kenmerk == newKenmerk );
    }
   }

   dgKenmerken.SelectedItem = newKenmerk;

   // start editing
   if( DataGrid.BeginEditCommand.CanExecute( newKenmerk, dgKenmerken ) )
   {
    DataGrid.BeginEditCommand.Execute( newKenmerk, dgKenmerken );
   }
  }

Элемент добавлен ифон строки изменяется, но BeginEditCommand начинает редактировать мой предыдущий выбранный элемент, а не добавленный элемент.Кто-нибудь знает, как это исправить?

1 Ответ

1 голос
/ 14 января 2011

Это потому, что сетка данных не "видит" изменения немедленно. Отложите использование только что добавленных данных - попробуйте разделить ваш метод на два - одно добавление, второе - использование. Позвоните второму от первого, не напрямую, а через диспетчера.

...