Wpf 删除后自动设置焦点行
我有一个devexpress网格视图,其中包含以行和列形式表示的数据。我已经实现了删除功能,现在我想,如果用户删除一行,那么控件应该自动将它前面的行设置为焦点行,用户可以再次删除,而无需重新选择该行Wpf 删除后自动设置焦点行,wpf,datagrid,devexpress,Wpf,Datagrid,Devexpress,我有一个devexpress网格视图,其中包含以行和列形式表示的数据。我已经实现了删除功能,现在我想,如果用户删除一行,那么控件应该自动将它前面的行设置为焦点行,用户可以再次删除,而无需重新选择该行 如何自动设置focusedRow…删除项目后调用此方法 public void SelectLastVisibleRow() { if (gridControl.VisibleRowCount > 1) { gridCon
如何自动设置focusedRow…删除项目后调用此方法
public void SelectLastVisibleRow()
{
if (gridControl.VisibleRowCount > 1)
{
gridControl.View.BeginSelection();
gridControl.View.ClearSelection();
gridControl.View.SelectRow(gridControl.VisibleRowCount - 1);
gridControl.View.MoveFocusedRow(gridControl.VisibleRowCount - 1);
gridControl.View.EndSelection();
}
}
希望这有帮助
新版本:
gridControl1.View.FocusedRowHandle = gridControl.VisibleRowCount - 1
获取选定行:
((TableView)gridControlSearchResults.View).SelectedRows
这是普雷维乌斯一行
private void backgroundWorkerDelete_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
try
{
progress1.Visible = false;
gridView1.GetFocusedDataRow().Delete();
gridView1.FocusedRowHandle = gridView1.FocusedRowHandle - 1;
}
catch (Exception ex)
{
logop.DataErors(ex.Message, "backgroundWorkerDelete_RunWorkerCompleted", "object", this.Name);
}
}
View后的ViewBeginSelection()、ClearSelection()和其他方法不在Dev Express网格控件内。它显示错误…那么您必须使用最新版本。使用:gridControl1.View.FocusedRowHandle=gridControl.VisibleRowCount-1;是的…这非常接近我想要的…我得到了我跟随你的代码的东西,并做了一些修改…只需使用VisibleRowCount而不是VisibleRowCount-1作为后一个自动聚焦最后一个节点。但这是与同一概念相关的另一件事:如果我同时选择了3行并尝试删除它们,我总是将最后一个选择作为重点行,例如,如果我选择了索引4,5,6处的行。。FocusedRow是第六排,而不是我选择的所有三排。我想获得多个选择中每个聚焦行的值…聚焦行将始终是您最后选择的行,无论您选择了10行。如果需要所选行的值,则必须循环所有所选行。使用此代码获取所选行:((TableView)gridControl1.View)。SelectedRows或更好的方法是绑定所选行:SelectedRowsSource=“{Binding Selection}”