1
我有一个可编辑项目的数据网格,我有一个按钮来创建这样一个项目的新实例。数据网格用新项目更新,但我无法选择最近添加的项目并开始编辑。WPF datagrid开始编辑新项目
下面是我的代码:
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开始编辑我以前选择的项目,而不是添加的项目。任何人有任何线索如何解决这个问题?
也许检查您的SelectedIndex?我偶尔有不同的那么我的SelectedItem,也许编辑命令使用SelectedIndex而不是SelectedItem。 'dgKenmerken.SelectedIndex = dgKenmerken.Items.Count-1' – Rachel 2010-09-14 15:22:05
Rachel,using SelectedIndex does not work。我用这个代码: \t dgKenmerken.SelectedIndex = dgKenmerken.Items.IndexOf(newKenmerk); | 并将SelectedIndex和SelectedItem更改为新项目,但仍未启动对该项目的编辑 – user342961 2010-09-15 07:09:33