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