我有一个包含两个列表框的表单,listbox1& listbox2。在表单加载时,我填写了两个相同的列表框。的项目。 我希望如果我在listbox1中的索引1处选择项目,那么在listbox2中也应该选择具有相同索引的项目。
我如何实现这一目标?
答案 0 :(得分:0)
在两个列表框SelectionChanged
上订阅,然后相应地为相反的列表框设置SelectedIndex
。
答案 1 :(得分:0)
您可以将listBox2中的SelectedIndex
绑定到listBox1中的SelectedIndex
。
像这样:
<ListBox Name="listBox1" />
<ListBox SelectedIndex="Binding ElementName=listBox1,Path=SelectedIndex" />
但是,如果要将listBox2上的选择更改反映回listBox1,则不能在listBox1中执行相同的绑定,因为它会抛出StackOverflowException。您应该在listBox2上订阅SelectionChanged事件并在代码中更改listBox1的SelectedIndex。
像这样:
<ListBox Name="listBox2" SelectedIndex="Binding ElementName=listBox1,Path=SelectedIndex" SelectionChanged="listBox2_SelectionChanged" />
事件处理程序方法如下所示:
private void listBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
listBox1.SelectedIndex = listBox2.SelectedIndex;
}