選択したListBoxItemをプログラムで変更する
-
10-07-2019 - |
質問
選択した ListBoxItem
をWindows Presentation FoundationのCode-Behindから変更することはできますか?
これは非常に単純なタスクです。 Next
および Previous
ボタンがあり、これらは ListBox
の次の項目と前の項目を表します。しかし、 myListBox.items
はもちろん、 ListBox
に保存したもののオブジェクト表現です。
では、 ListBoxItem
をフェッチして IsSelected
プロパティを設定するにはどうすればよいですか?
解決
PreviousおよびNextを実行しているため、おそらくあなたのケースで行う方が簡単です。SelectedIndexをインクリメントするだけです:
//Increment
if(myListBox.SelectedIndex < myListBox.Items.Count -1)
myListBox.SelectedIndex++;
//Decrement
if(myListBox.SelectedIndex > 0)
myListBox.SelectedIndex--;
ListBoxでスローしたオブジェクトを構成するListBoxItemを本当に取得したい場合は、次のようにします。
ListBoxItem item = myListBox.ItemContainerGenerator.ContainerFromItem(objectIWantToSelect);
item.IsSelected = true;
他のヒント
さまざまなオプションがあります:
- ListBoxコントロールのSelectedItemまたはSelectedIndexプロパティを使用する
- 親ListBoxではなくListBoxItemがある場合、ItemsControl.ItemsControlFromItemContainer(listboxitem)を使用して親ListBoxを取得します(前のプロパティを使用します)
- ICollectionViewインターフェイス(CollectionViewSource.GetDefaultView)およびそのメソッド(MoveCurrentToNext、MoveCurrentToPrevious)を使用します
所属していません StackOverflow