C# WPF Datagrid焦点并突出显示最后一行
我想强调一下我的数据网格中最后一个新的创建行,我已经参考了这个页面来获得一些想法 根据上面的参考链接,datagrid首先必须可视化。最后一行的原因是不对焦和高光,可能就是这个原因造成的 下面是我的代码结构C# WPF Datagrid焦点并突出显示最后一行,c#,wpf,wpfdatagrid,wpf-4.0,C#,Wpf,Wpfdatagrid,Wpf 4.0,我想强调一下我的数据网格中最后一个新的创建行,我已经参考了这个页面来获得一些想法 根据上面的参考链接,datagrid首先必须可视化。最后一行的原因是不对焦和高光,可能就是这个原因造成的 下面是我的代码结构 private void CommitRow(object sender, DataGridRowEditEndingEventArgs e ) { //FIRE WHEN ROW IS DONE EDIT /* S
private void CommitRow(object sender, DataGridRowEditEndingEventArgs e )
{
//FIRE WHEN ROW IS DONE EDIT
/*
STORING DATA TO DATABASE
*/
SelectRowByIndex(Datagrid, Datagrid.Items.Count - 1); //I refer from msdn blog
}
我试图将代码SelectRowByIndex
放入一个按钮,它将突出显示最后一行。因此,我相信只有当网格显示在UI上时,代码才会起作用
我的问题是如何在显示界面之前突出显示最后一行?或者,是否有其他方法允许我对焦并高亮显示新创建的行?您是正确的,它无法高亮显示,因为它尚未渲染 但是你可以利用调度器在那里发挥你的优势
private void CommitRow(object sender, DataGridRowEditEndingEventArgs e )
{
//FIRE WHEN ROW IS DONE EDIT
/*
STORING DATA TO DATABASE
*/
Dispatcher.BeginInvoke(DispatcherPriority.Input, new Action(() =>
{
SelectRowByIndex(Datagrid, Datagrid.Items.Count - 1);
}));
}
这应该能奏效。它调用调度程序以在渲染之后的优先级执行此操作。从视觉上看,这应该会立即发生。我明白了,Thx@haggyoh yea应该指定这一点。编辑它以防其他人偶然发现。