我想在我的数据网格中突出显示我最后创建的新行,我已参考此页面http://social.technet.microsoft.com/wiki/contents/articles/21202.wpf-programmatically-selecting-and-focusing-在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);
}));
}
这应该可以解决问题。它调用分派器在渲染后立即执行优先级。在视觉上,这应该立即发生。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句