C# WPF 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

我想强调一下我的数据网格中最后一个新的创建行,我已经参考了这个页面来获得一些想法

根据上面的参考链接,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);
    }));
 }

这应该能奏效。它调用调度程序以在渲染之后的优先级执行此操作。从视觉上看,这应该会立即发生。

我明白了,Thx@haggyoh yea应该指定这一点。编辑它以防其他人偶然发现。