c#中的列表框

本文关键字:列表 | 更新日期: 2023-09-27 18:03:10

我有一个有两个列表框的表单,listbox1 &listbox2。在表单加载上,我填写了两个列表框相同的no。的物品。我希望如果我在listbox1中选择索引为1的item,那么在listbox2中具有相同索引的item也应该被选中。

我如何做到这一点?

c#中的列表框

订阅两个列表框的SelectionChanged事件,然后为另一个列表框设置相应的SelectedIndex

可以将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;
}