维护 Silverlight 数据网格中的排序顺序

本文关键字:排序 顺序 网格 Silverlight 数据 数据网 维护 | 更新日期: 2023-09-27 18:36:53

我有一个简单的 Silverlight 5 数据网格绑定到对象的 ObservableCollection:

<sdk:DataGrid x:Name="grid_test" AutoGenerateColumns="False" Grid.Row="1" Height="268" HorizontalAlignment="Left" Margin="16,186,0,0" VerticalAlignment="Top" Width="744">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Header="Agent Name" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding agentName}"  />
                <sdk:DataGridTextColumn Header="Campaign" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding currentCampaign}"  />
                <sdk:DataGridTextColumn Header="Currently" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding currentState}"  />
                <sdk:DataGridTextColumn Header="Time" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding displayTime}"  />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

并在代码中:

grid_test.ItemsSource = allKnownAgents;

..它工作正常,数据显示和自动更新,用户可以通过单击列标题对数据进行排序。但是,当数据更改时,网格不会自动诉诸 - 这意味着排序顺序不会严格维护。用户需要再次单击列标题以手动对数据重新排序。

有没有简单的方法可以要求/告诉 Silverlight 在数据变化时保持数据的顺序?

维护 Silverlight 数据网格中的排序顺序

一个选项是使用 PagedCollectionView 代替 ObservableCollection。您可以更好地控制失效和重新应用排序和筛选。

尝试设置 ,Mode=TwoWay例如:- Binding="{Binding agentName, Mode=TwoWay}"