使用C#选择列表框中的项目

时间:2009-03-20 07:46:46

标签: c# wpf listbox selection

我在WPF窗口中使用两个相同的ListBox控件(ListBox的相同= ItemSource相同,因此它们看起来相同)并且ListBoxes上的选择模式都设置为Multiple。 / p>

暂时让我们调用ListBox LB1LB2,现在当我点击LB1中的某个项目时,我希望LB2中的相同项目被选中自动,即如果我在LB1中使用 Shift + 选择3个项目单击 Ctrl + 单击相同的项目LB2被选中。

挖掘了SelectedItemsSelectedIndex等列表框属性,但没有运气。

2 个答案:

答案 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中的索引