WPF datagrid开始编辑新项
我有一个带有可编辑项的datagrid,我有一个按钮来创建这样一个项的新实例。datagrid已使用新项进行更新,但我无法选择最近添加的项并开始对其进行编辑 下面是我的代码:WPF datagrid开始编辑新项,wpf,datagrid,command,new-operator,Wpf,Datagrid,Command,New Operator,我有一个带有可编辑项的datagrid,我有一个按钮来创建这样一个项的新实例。datagrid已使用新项进行更新,但我无法选择最近添加的项并开始对其进行编辑 下面是我的代码: private void btnNewKenmerk_Click( object sender, RoutedEventArgs e ) { Kenmerk newKenmerk = new Kenmerk(); // the item to add Kenmerken.Add( newKenmerk
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 );
}
}
添加该项并更改行的背景,但BeginEdit命令开始编辑我以前选择的项,而不是添加的项。有人知道如何解决这个问题吗?这是因为datagrid没有立即看到更改。推迟使用新添加的数据-请尝试将您的方法拆分为两个-一个添加,第二个使用。从第一个呼叫第二个,不是直接呼叫,而是通过dispatcher 这是因为datagrid没有立即看到更改。推迟使用新添加的数据-请尝试将您的方法拆分为两个-一个添加,第二个使用。从第一个呼叫第二个,不是直接呼叫,而是通过dispatcher 也许可以检查您选择的索引?我偶尔会遇到与SelectedItem不同的情况,可能edit命令使用SelectedIndex而不是SelectedItem。dgKenmerken.SelectedIndex=dgKenmerken.Items.Count-1使用SelectedIndex的缓存无效。我使用了以下代码:dgKenmerken.SelectedIndex=dgKenmerken.Items.IndexOfnewKenmerk;|这将SelectedIndex和SelectedItem更改为新项目,但仍然没有启动对该项目的编辑也许检查SelectedIndex?我偶尔会遇到与SelectedItem不同的情况,可能edit命令使用SelectedIndex而不是SelectedItem。dgKenmerken.SelectedIndex=dgKenmerken.Items.Count-1使用SelectedIndex的缓存无效。我使用了以下代码:dgKenmerken.SelectedIndex=dgKenmerken.Items.IndexOfnewKenmerk;|这将SelectedIndex和SelectedItem更改为新项目,但仍然没有启动对该项目的编辑