我有Datagrid
<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>
MyCollectionViewSource
定义如下:
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();
}
当我快速滚动数据网格时,项目将变为未排序,并保持未排序。显然,这是不受欢迎的行为。为什么会发生这种情况,我该如何解决?
修改
看起来只有在快速滚动时才会出现错误,而不是使用鼠标滚轮。对于任何测试人员 - 选择滚动条并快速上下移动。