ListBoxでデータを読み込んだ後にすぐアイテムを選択する方法
WPFでListBoxにデータを読み込ませた後にすぐアイテムを選択しようと思ったのだが、
今までの考え方からすると、ListBox.Items.Countが1以上でない場合にSelectedIndexを設定すると例外が発生してしまうと思っていた。
なので、以下のようなコードを書いていた。
var q = from ..... select ...; listBox.DataContext = q; // 一番上を選択状態にする if (listBox.Items.Count > 0) { listBox.SelectedIndex = 0; }
これだと場合によってはItems.Countが入っていないことがあって(特に画面ロード時)、アイテムが選択されないことがあった。
そこで、データの方が1件以上入っていればとりあえず、SelectedIndexを変えてみるようにした。
var q = from ..... select ...; listBox.DataContext = q; // 一番上を選択状態にする if (q.Count() > 0) { listBox.SelectedIndex = 0; }
こうすると、リストのアイテムが選択されるようになったのでとりあえず、この方法で開発を進める。