WPF Datagrid 焦点并突出显示最后一行

WPF Datagrid focus and highlighting last row

我想在我的数据网格中突出显示我最后新创建的行,我参考了此页面 http://social.technet.microsoft.com/wiki/contents/articles/21202.wpf-programmatically-selecting-and-focusing-a-row-or-cell-in-a-datagrid.aspx 以了解一些想法。

根据上面的参考资料link,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);
    }));
 }

这应该可以解决问题。它调用 Dispatcher 以在渲染之后的优先级执行此操作。从视觉上看,这应该立即发生。