Auswählen von Elementen in einer Listbox mit C #
Frage
Ich bin mit zwei ListBox-Steuerelemente in meinem WPF-Fenster, die identisch sind (identisch = ItemSource
sowohl der List-Box ist gleich und so gleichen sie aussehen) und der Auswahlmodus auf beiden Listboxen wird auf mehrere eingestellt.
Hier können Sie die Listboxen LB1
nennen und LB2
zur Zeit, wenn ich jetzt auf ein Element klicken in LB1
, möchte ich das gleiche Element in LB2
automatisch, dh zu erhalten ausgewählt, wenn ich 3 Artikel in LB1 wählen entweder mit Umschalt + Klicken Sie auf oder Strg + Klicken Sie auf die gleichen Elemente in LB2
ausgewählt bekommen.
Haben Sie grub die Listbox Eigenschaften wie SelectedItems
, SelectedIndex
usw., aber ohne Glück.
Lösung
Legen Sie eine Selection Ereignis auf Ihrem ersten Listbox
LB1.SelectionChanged += LB1_SelectionChanged;
implementieren dann die Selection Methode wie folgt:
void LB1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
LB2.SelectedItems.Clear();
foreach(var selected in LB1.SelectedItems)
{
LB2.SelectedItems.Add(selected);
}
}
Andere Tipps
Haben Sie versucht, SetSelected?
listBox2.SetSelected(1, True)
Sie können es wie folgt verwenden
private void DoLB2Selection()
{
// Loop through all items the ListBox.
for (int x = 0; x < listBox1.Items.Count; x++)
{
// Determine if the item is selected.
if(listBox1.GetSelected(x) == true)
// Deselect all items that are selected.
listBox2.SetSelected(x,true);
}
verwenden, um die ausgewählten Elemente von LB1 als Index in LB2