質問

選択した 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)を使用します
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top