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();
}