C# 滚动数据网格

C# 滚动数据网格,c#,wpf,datagrid,scrollviewer,C#,Wpf,Datagrid,Scrollviewer,我使用带有特殊滚动的DataGrid,在互联网上搜索。 它的工作正常,但当我修改backcode上的selecteditem时,rowselection会转到selected行,但Scroll会停留在第一个元素,这样,如果我用按钮转到最后一个元素,我就看不到第20个元素。 在代码中,我使用了first、prev、next、last按钮、search index move,但这些按钮不能与Scroll通信,为什么? 这是我的导航: 如果我按.Up,Key.Down可以很好地与scroll进行通信,

我使用带有特殊滚动的DataGrid,在互联网上搜索。 它的工作正常,但当我修改backcode上的selecteditem时,rowselection会转到selected行,但Scroll会停留在第一个元素,这样,如果我用按钮转到最后一个元素,我就看不到第20个元素。 在代码中,我使用了first、prev、next、last按钮、search index move,但这些按钮不能与Scroll通信,为什么? 这是我的导航:

如果我按.Up,Key.Down可以很好地与scroll进行通信,但是当我从1号转到20号时,我会发送19XKey.Down?我想也许是个简单的方法,只是我不明白。 现在,我的按钮将Mvvm light CollectionViewsource AktItem设置为下一个、最后一个等,通过选择EdItem,IsSynchronizedCurrent获得焦点返回,但滚动不移动

谢谢你的帮助 史蒂夫


实现所需功能的最简单方法可能是使用
DataGrid.ScrollIntoView(object)
方法响应视图代码隐藏中按钮的单击事件:

在XAML中:

<Button Content="Content"
        Click="Button_Click"/>

其中Dg是您在XAML中指定的数据网格的
名称
,而
是您要滚动到的项。

谢谢,我使用私有void DataGridBase\u SelectionChanged(object sender,SelectionChangedEventArgs e){if(SelectedItem!=null)从DataGrid生成DataGridBase{ScrollIntoView(SelectedItem);UpdateLayout();}}}UpdateLayout()-解决我的刷新问题。----------------------------------------如果我在外部单击,但行验证有错误,您能帮助我如何保持对实际datagridrow的关注吗?或者需要在另一个问题中提问这个问题吗?
<Button Content="Content"
        Click="Button_Click"/>
 private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            DG.ScrollIntoView(DG.Items[item]);
        }