Списки в c #

c#

52 просмотра

2 ответа

У меня есть форма с двумя списками, listbox1 и listbox2. При загрузке формы я заполняю оба списка одинаковыми номерами. предметов. Я хочу, чтобы, если я выбрал элемент с индексом 1 в listbox1, то в списке listbox2 также должен быть выбран элемент с таким же индексом.

Как мне этого добиться?

Автор: Sudarshan Taparia Источник Размещён: 08.11.2019 11:12

Ответы (2)


0 плюса

Подпишитесь на оба SelectionChangedсобытия SelectedIndexсписка, а затем установите соответствующее для противоположного списка.

Автор: Vidas Vasiliauskas Размещён: 20.08.2016 11:19

0 плюса

Вы можете привязать SelectedIndexв listBox2 к SelectedIndexв listBox1.

Вот так:

<ListBox Name="listBox1" />
<ListBox SelectedIndex="Binding ElementName=listBox1,Path=SelectedIndex" />

Однако, если вы хотите отразить изменение выбора в listBox2 обратно в listBox1, вы не можете просто сделать такую ​​же привязку в listBox1, потому что это вызовет исключение StackOverflowException. Вы должны подписаться на событие SelectionChanged в listBox2 и изменить SelectedIndex listBox1 в коде.

Вот так:

<ListBox Name="listBox2" SelectedIndex="Binding ElementName=listBox1,Path=SelectedIndex" SelectionChanged="listBox2_SelectionChanged" />

И метод обработчика событий выглядит так:

private void listBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    listBox1.SelectedIndex = listBox2.SelectedIndex;
}
Автор: GregaMohorko Размещён: 20.08.2016 11:35
Вопросы из категории :
32x32