我在WPF窗口中使用两个相同的ListBox控件(ListBox的相同= ItemSource
相同,因此它们看起来相同)并且ListBoxes上的选择模式都设置为Multiple。 / p>
暂时让我们调用ListBox LB1
和LB2
,现在当我点击LB1
中的某个项目时,我希望LB2
中的相同项目被选中自动,即如果我在LB1中使用 Shift + 选择3个项目单击或 Ctrl + 单击相同的项目LB2
被选中。
挖掘了SelectedItems
,SelectedIndex
等列表框属性,但没有运气。
答案 0 :(得分:9)
在您的第一个列表框中放置一个SelectionChanged事件
LB1.SelectionChanged += LB1_SelectionChanged;
然后实现SelectionChanged方法,如下所示:
void LB1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
LB2.SelectedItems.Clear();
foreach(var selected in LB1.SelectedItems)
{
LB2.SelectedItems.Add(selected);
}
}
答案 1 :(得分:0)
您是否尝试过SetSelected?
listBox2.SetSelected(1, True)
您可以像这样使用
private void DoLB2Selection()
{
// Loop through all items the ListBox.
for (int x = 0; x < listBox1.Items.Count; x++)
{
// Determine if the item is selected.
if(listBox1.GetSelected(x) == true)
// Deselect all items that are selected.
listBox2.SetSelected(x,true);
}
使用LB1中的选定项目作为LB2中的索引