WPF datagrid开始编辑新项目

时间:2010-09-14 10:58:28

标签: wpf datagrid command new-operator

我有一个带有可编辑项目的数据网格,我有一个按钮来创建这样一个项目的新实例。数据网格使用新项目进行更新,但我无法选择最近添加的项目并开始编辑。

以下是我的代码:

  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 个答案:

答案 0 :(得分:1)

这是因为数据网格没有立即“看到”更改。使用新添加的数据推迟 - 请尝试将您的方法分为两个 - 一个添加,第二个使用。从第一个呼叫第二个,不是直接呼叫,而是通过调度员。