WPF的DataGrid数据源中的数据更新后,如何保持视图正确排序

XAML中的代码

                <DataGrid AutoGenerateColumns="False" x:Name="dg" ItemsSource="{Binding}" Grid.Row="1"
                          CanUserAddRows="False" AlternationCount="3" 
                          RowStyle="{DynamicResource DataGridDemoRowStyle}"
                          PreviewKeyDown="dataGrid_PreviewKeyDown">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="ID" Binding="{Binding id}" Width="32"/>
                        <DataGridTextColumn Header="课程" Binding="{Binding lesson}" Width="64"/>
                        <DataGridTextColumn Header="教员" Binding="{Binding stuff}" Width="64"/>
                        <DataGridTextColumn Header="每周节数" Binding="{Binding times}"/>
                        <DataGridTextColumn Header="场地要求" Binding="{Binding placeCategory}" Width="96"/>
                        <DataGridTextColumn Header="禁排要求" Binding="{Binding forbid, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True"/>
                    </DataGrid.Columns>
                </DataGrid>


后台代码

            //更新DataGrid对象dg的数据源
            Model2ViewByClassName(tvi.ModelName);

            #region 根据id字段升序排列
            ICollectionView view = CollectionViewSource.GetDefaultView(dg.ItemsSource);
            view.SortDescriptions.Clear();
            SortDescription sd = new SortDescription("id", ListSortDirection.Ascending);
            view.SortDescriptions.Add(sd);
            #endregion


你可能感兴趣的:(WPF的DataGrid数据源中的数据更新后,如何保持视图正确排序)