2016-08-20 32 views
-3

我有一个带两个列表框的列表,listbox1 & listbox2。在表单加载时,我填写了两个列表框,其中没有。项目。 我希望如果我选择列表框1中索引1的项目,那么也应选择具有相同索引的列表框2项目。c中的列表框#

我该如何做到这一点?

+0

的问题是不够清楚,因为我明白,如果我从列表1,那么第2项中选择第1项从列表2中也会被选中?所以如果我从列表1中选择项目2,那么列表2中的项目3将被选中? – Ateeq

+0

到目前为止你有尝试过什么吗?你可以做这样的事情'listBox2.SelectedIndex = listBox2.SelectedIndex + 1;' –

+0

是我们正在谈论的WinForms或WPF? –

回答

0

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

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