Выбор элементов в списке с помощью C #

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

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

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


person Anand Shah    schedule 20.03.2009    source источник


Ответы (2)


Поместите событие 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);
    }
}
person Arcturus    schedule 20.03.2009
comment
Привет, большое спасибо, ваша помощь приветствуется, фрагмент кода, который вы предоставили, работает как шарм. С уважением @nand - person Anand Shah; 20.03.2009
comment
Нет проблем .. рад, что смог помочь! :) - person Arcturus; 20.03.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

person RvdK    schedule 20.03.2009
comment
Привет, PoweRoy! Спасибо за ответ, но, к сожалению, WPF не предоставляет свойство SetSelected для списков. Я пробовал поискать в Google (setselected), но не смог найти решение, поэтому этот пост С уважением @nand - person Anand Shah; 20.03.2009