gpt4 book ai didi

c# - 在从 NewItemRow 插入行后将焦点设置到 NewItemRow

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:07 26 4
gpt4 key购买 nike

我正在使用 DevExpress XPF GridControlNewItemRow 将数据插入我的数据库。

当我在最后一个单元格中按回车键时,它会输入数据并返回到网格的顶行。

我希望它做的是返回到 NewItemRow,这样用户就可以开始插入新记录,而无需重新选择 NewItemRow 行。

如何在从 NewItemRow 插入行后将焦点设置到 NewItemRow?

ps:我在这里问而不是 DevExpress 论坛,因为这里的回复要快得多:)

编辑:

这是我试过的一些代码,但结果完全相同:

void MVVMFriendlyDxgTableView_RowUpdated(object sender, DevExpress.Xpf.Grid.RowEventArgs e)
{
if (RowUpdatedCommand != null)
{
if (e.Row != null)
{
if (RowUpdatedCommand.CanExecute(e.Row))
{
RowUpdatedCommand.Execute(e.Row);
if (e.RowHandle == GridControl.NewItemRowHandle)
{
Dispatcher.BeginInvoke(new Action(() =>
{
SelectRow(GridControl.NewItemRowHandle);
}));
e.Handled = true;
}
}
}
}
}

最佳答案

事实证明,我遇到的问题是由于更新数据绑定(bind) ObservableCollection 导致刷新网格和选择不同的行。 DJKRAZE 发布的第二个代码本来可以工作,但我对数据库的调用是异步的,因此在 RowUpdated 事件完成之前没有发生。为了解决这个问题,我重写了 OnDataChanged 方法以在数据更新后选择 NewItemRow。

这是有效的结果代码。

protected override void OnDataChanged(bool rebuildVisibleColumns)
{
base.OnDataChanged(rebuildVisibleColumns);
Dispatcher.BeginInvoke(new Action(() =>
{
this.FocusedRowHandle = GridControl.NewItemRowHandle;
}), null);
}

感谢您的帮助。

关于c# - 在从 NewItemRow 插入行后将焦点设置到 NewItemRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14148160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com