Frage

Ist es möglich, das ausgewählte ListBoxItem von Codebehind in Windows Presentation Foundation zu ändern?

Es ist eine ziemlich einfache Aufgabe, wirklich, ich habe eine Next und Previous Taste und sie stellen die nächste und vorherige Element in der ListBox. Aber myListBox.items ist natürlich Objektdarstellungen von dem, was ich in der ListBox gespeichert.

Also, wie würde man die ListBoxItem holt die IsSelected Eigenschaft zu setzen?

War es hilfreich?

Lösung

Die wohl leichter, was in Ihrem Fall zu tun, da Sie zurück tun und Weiter wird nur die SelectedIndex erhöhen:

//Increment
if(myListBox.SelectedIndex < myListBox.Items.Count -1)
     myListBox.SelectedIndex++;

//Decrement
if(myListBox.SelectedIndex > 0)
     myListBox.SelectedIndex--;

Wenn Sie wirklich wollen die ListBoxItem erhalten, die ein Objekt macht Sie in Ihrer List-Box geworfen haben, können Sie tun:

ListBoxItem item = myListBox.ItemContainerGenerator.ContainerFromItem(objectIWantToSelect);
item.IsSelected = true;

Andere Tipps

Sie haben verschiedene Möglichkeiten:

  • verwenden, um die SelectedItem oder SelectedIndex-Eigenschaft des ListBox-Steuerelement
  • , wenn Sie die ListBoxItem und nicht die übergeordnete ListBox haben, verwenden Sie ItemsControl.ItemsControlFromItemContainer (ListBoxItem) das übergeordnete ListBox (und verwenden Sie die vorherigen Eigenschaften)
  • abrufen
  • verwenden, um die ICollectionView Schnittstellen (CollectionViewSource.GetDefaultView) und seine Methoden (MoveCurrentToNext, MoveCurrentToPrevious)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top