C# 数据网格滚动/排序错误

C# 数据网格滚动/排序错误,c#,wpf,sorting,datagrid,collectionviewsource,C#,Wpf,Sorting,Datagrid,Collectionviewsource,我有一个数据网格 当我快速滚动我的数据网格时,项目变得未排序,并且保持未排序状态。这显然是不必要的行为。为什么会发生这种情况?我如何修复它 编辑 看起来只有在快速滚动时才会发生错误,而不是使用鼠标滚轮。对于任何进行测试的人,请选择滚动条并快速上下移动。为什么要将ItemsSource绑定到CollectionViewSource的View属性?@DanielMay我认为应该这样绑定它。当我刚刚绑定到CollectionViewSource时,我的数据网格没有填充。@Charles W-您需要为问

我有一个数据网格

当我快速滚动我的数据网格时,项目变得未排序,并且保持未排序状态。这显然是不必要的行为。为什么会发生这种情况?我如何修复它

编辑
看起来只有在快速滚动时才会发生错误,而不是使用鼠标滚轮。对于任何进行测试的人,请选择滚动条并快速上下移动。

为什么要将ItemsSource绑定到CollectionViewSource的View属性?@DanielMay我认为应该这样绑定它。当我刚刚绑定到CollectionViewSource时,我的数据网格没有填充。@Charles W-您需要为问题添加更多细节,因为在示例代码中我尝试了这一点,但效果非常好。也试着在这里发布小样本,复制您的问题。
<DataGrid ItemsSource="{Binding MyCollectionViewSource.View}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Id" Binding={Binding Id} IsReadOnly="True"/>
        <DataGridTextColumn Header="Name" Binding={Binding Name} />
    </DataGrid.Columns>
</DataGrid>
public ObservableCollection<SimpleDataViewModel> ObservableData { get; set; }
public CollectionViewSource MyCollectionViewSource { get; set; }

public DataGridViewModel()
{
    ObservableData = new ObservableCollection<SimpleDataViewModel>(
                        AllData.Select(x => new SimpleDataViewModel(x)));

    MyCollectionViewSource = new CollectionViewSource();
    MyCollectionViewSource.Source = ObservableData;

    MyCollectionViewSource.SortDescriptions.Add(
        new SortDescription("Id", ListSortDirection.Ascending));
    MyCollectionViewSource.View.Refresh();
}