+-
C#-WPF Datagrid焦点并突出显示最后一行
我想在我的数据网格中突出显示我最后创建的新行,我已经参考了 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焦点并突出显示最后一行 - 乐贴网