我有一个带两个列表框的列表,listbox1 & listbox2。在表单加载时,我填写了两个列表框,其中没有。项目。 我希望如果我选择列表框1中索引1的项目,那么也应选择具有相同索引的列表框2项目。c中的列表框#
我该如何做到这一点?
我有一个带两个列表框的列表,listbox1 & listbox2。在表单加载时,我填写了两个列表框,其中没有。项目。 我希望如果我选择列表框1中索引1的项目,那么也应选择具有相同索引的列表框2项目。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;
}
的问题是不够清楚,因为我明白,如果我从列表1,那么第2项中选择第1项从列表2中也会被选中?所以如果我从列表1中选择项目2,那么列表2中的项目3将被选中? – Ateeq
到目前为止你有尝试过什么吗?你可以做这样的事情'listBox2.SelectedIndex = listBox2.SelectedIndex + 1;' –
是我们正在谈论的WinForms或WPF? –