ユーザーがリストボックスから選択したすべてのアイテムを収集し、アプリケーションのテキスト ボックスに値を入力しています。ただし、myListBox.SelectedItems から受け取ったアイテムは常に並べ替えられますが、ユーザーがそれらのアイテムを選択した順序を保持する必要があります。
私はWinformsを使用しています。WPF のリストボックスが必要なものを返すことはわかっていますが、単純な winform と C# だけで WPF を使用していません。
このコードを試して、注文を正確かつ簡単に記録できます。
List<int> selectedIndices = new List<int>();
//SelectedIndexChanged event handler for your listBox1
private void listBox1_SelectedIndexChanged(object sender, EventArgs e){
if (listBox1.SelectedIndex > -1){
selectedIndices.AddRange(listBox1.SelectedIndices.OfType<int>()
.Except(selectedIndices));
selectedIndices.RemoveRange(0, selectedIndices.Count - listBox1.SelectedItems.Count);
}
}
//Now all the SelectedIndices (in order) are saved in selectedIndices;
//Here is the code to get the SelectedItems in order from it easily
var selectedItems = selectedIndices.Select(i => listBox1.Items[i]);