我有一个绑定到 ObservableCollection 对象的简单 Silverlight 5 数据网格:
<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 在数据变化时保持数据顺序?