+-

我想在我的数据网格中突出显示我最后创建的新行,我已经参考了 http://social.technet.microsoft.com/wiki/contents/articles/21202.wpf-programmatically-selecting-and-focusing-a-row-or-cell-in-a-datagrid.aspx页以获得一些想法.
根据以上参考链接,datagrid首先必须进行可视化.最后一行的原因不是聚焦和高亮度,可能是由于这个原因.
以下是我的代码结构
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);
}));
}
这应该可以解决问题.它调用分派器在渲染后立即执行优先级.在视觉上,这应该立即发生.
点击查看更多相关文章
转载注明原文:C#-WPF Datagrid焦点并突出显示最后一行 - 乐贴网