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.

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top