none
System.Windows.Controls.Listbox での複数選択の順番 RRS feed

  • 質問

  • System.Windows.Controls.Listboxでリストボックスを作成し,

    SelectionMode = System.Windows.Controls.SelectionMode.Extended;

    とした状態で,複数選択を行っています.



    要素が七つあり[1234567],345をまとめて選択しようとしています.

    この時,3をクリックしてシフトキーを押しながら5を選択した場合,SelectedItemsでは345と出て来ます.

    ですが,5をクリックして3を選択した場合,何故か534と要素が出て来てしまいます.



    おそらくは最初にクリックした要素がSelectedIndexになってしまっていると思うのですが,どちらの方向からでもを順番通りに取り出す方法はございませんでしょうか.


    2012年12月7日 13:52

回答

すべての返信

  • 取り出した後ソートするまででは?
    • 回答としてマーク blue_wind_ 2012年12月11日 6:33
    2012年12月8日 0:04
  • すみません,説明を簡単にしようとするあまり誤解を招く表現を使ってしまいました.

    実際にListboxに入っているデータはそれぞれ独立したオブジェクトで,ソートすることができません.

    また,取り出す前の並び順は毎回違うので,無理矢理ソートをすることも不可能になります.

    誤解を招いてしまい申し訳ありませんでした.


    2012年12月11日 5:53
  • では「独立したオブジェクト」に現在の並び順のインデックス番号を持たせておけばいいのでは。
    • 回答としてマーク blue_wind_ 2012年12月11日 6:33
    2012年12月11日 6:25
  • ああ!

    確かにそう言われればそうですね,読み込み時にListbox内の要素全てに番号を振ればソートできますね.

    どうもありがとうございました.

    2012年12月11日 6:32