オブジェクトの 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 に、データの変更時にデータの順序を維持するように依頼/指示する簡単な方法はありますか?