Multit выбрать список в wpf - PullRequest
       4

Multit выбрать список в wpf

1 голос
/ 22 октября 2010

как я могу выбрать пять элементов одним щелчком мыши в окне списка? если я нажму любой элемент, я просто хочу +2 и -2 из выбранного индекса. поэтому мой единственный клик нужно выбрать пять элементов в списке. Использую C # (WPF).

Ответы [ 2 ]

1 голос
/ 22 октября 2010

Я не уверен, что именно ты хочешь делать, но пытаюсь.=)

Посмотрите на событие Click в ListBox.Там вы можете делать все что угодно, в том числе выбирать пять предметов на ваш выбор.Вы можете сделать это следующим образом (не проверено, но дает вам представление):

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.Приводит ли это к поведению, которое вы ищете?

0 голосов
/ 22 октября 2010

взгляните на выделенное событие и получите индекс выбранного элемента и сделайте его +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, чтобы выбрать другой элемент, чтобы увеличить количество выбранных элементов

...