だから私はC#/ WPFを使用していて、DataGrid. ユーザーが で複数のアイテムを選択できるようにする必要がありますDataGrid。SelectedItemsただし、の順序は、ユーザーが選択した方向または順序に依存することに気付きました。たとえば、下から上にドラッグすると、アイテムは基本的に、DataGridそれ自体の順序とは逆になります。これらのアイテムは、SelectedItemsコレクションにあったのと同じ順序でコレクションに入れる必要がありDataGridます。
これが私がやっていることのサンプルです:
DataGrid grid = DataGridWorkoutTemplate;
if (grid.SelectedItems.Count > 1)
{
List<IntervalDisplay> source = (List<IntervalDisplay>)grid.ItemsSource;
List<IntervalDisplay> newSource = new List<IntervalDisplay>(source);
foreach (IntervalDisplay row in grid.SelectedItems)
{
newSource.Add(row);
}
grid.ItemsSource = newSource;
ご覧のとおり、私がやろうとしているのは、アイテムを取り込んで(この場合はリスト)SelectedItemsの最後に再度追加することだけですが、常に元の順序で追加する必要があります。ItemsSourceDataGrid
これを行うためのより良い方法がある場合、または元の順序を使用する方法を知っている場合は、お知らせください. SelectedItemsからの固有のインデックスはないようDataGridです。選択された順序でのアイテムのインデックスだけです。そして、このインデックス作成を処理するためだけに基本クラスを変更したくありません。
ありがとう!