Выбор элементов в списке с помощью C # - PullRequest
6 голосов
/ 20 марта 2009

Я использую два элемента управления ListBox в моем окне WPF, которые идентичны (идентичные = ItemSource обоих ListBox одинаковы, и поэтому они выглядят одинаково), а режим выбора в обоих ListBoxes установлен на Multiple.

Позволяет в данный момент вызывать списки LB1 и LB2, теперь, когда я щелкаю элемент в LB1, я хочу, чтобы тот же элемент в LB2 выбирался автоматически, т. Е. Если я выбрал 3 элемента в LB1, используя Shift + Нажмите или Ctrl + Нажмите те же элементы в LB2 будут выбраны.

Выкопали свойства Listbox, такие как SelectedItems, SelectedIndex и т. Д., Но не повезло.

Ответы [ 2 ]

9 голосов
/ 20 марта 2009

Поместите событие SelectionChanged в свой первый список

LB1.SelectionChanged += LB1_SelectionChanged;

Затем реализуйте метод SelectionChanged следующим образом:

void LB1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    LB2.SelectedItems.Clear();
    foreach(var selected in LB1.SelectedItems)
    {
        LB2.SelectedItems.Add(selected);
    }
}
0 голосов
/ 20 марта 2009

Вы пробовали SetSelected?

listBox2.SetSelected(1, True)

Вы можете использовать это так

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);
   }

использовать выбранные элементы из LB1 в качестве индекса в LB2

...