wpf中的多选列表框

时间:2010-10-22 08:59:34

标签: c# wpf listbox multi-select

如何在列表框中单击选择五个项目? 如果我点击任何项目,我只想从所选索引+2和-2。所以我的单击需要在列表视图中选择五个项目。 我正在使用C#(WPF)。

2 个答案:

答案 0 :(得分:1)

我不确定你想要做什么,但是尝试。 =)

查看ListBox的Click事件。你可以在那里做任何事情,包括选择你选择的五个项目。你可以这样做(未经测试,但给你一个想法):

int sindex = listBox1.SelectedIndex;
listBox1.SelectedItems.Clear();
for(int i = Math.Max(sindex - 2, 0); i < Math.Min(sindex + 2, listBox1.Items.Count()), i++)
{
    listBox1.SelectedItems.Add(listBox1.Items[i]);
}

另一件事是将SelectionMode设置为Multiple或Extended。这会导致您正在寻找的行为吗?

答案 1 :(得分:0)

查看selectionchanged事件,获取所选项目的索引并使其为+2和-2 我试过这样就行了:

void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int idx = list.SelectedIndex;
    int startIdx = idx - 2;
    int endIdx = idx + 2;
    if (startIdx < 0)
    {
        startIdx = 0;
    }
    if (endIdx >= list.Items.Count)
    {
        endIdx = list.Items.Count-1;
    }

    for (int i = startIdx; i <= endIdx; i++)
    {
        if (i != idx)
        {
            list.SelectedItems.Add(list.Items[i]);
        }
    }
}

此代码的一个问题是你仍然可以使用ctrl选择另一个项目,这样可以增加选择项数量