Проверка двух условий на элементах группы просмотра списка - PullRequest
0 голосов
/ 03 сентября 2011

У меня есть представление списка (с одним столбцом).Я разделил этот вид списка на две группы, как показано на рисунке ниже.

Моя проблема заключается в следующем: как найти событие выбора следующим образом: если я нажимаю на нечетный элемент группы («один»), а затем, если ящелкните по четному элементу группы («два»), я хочу что-то сделать.

Как я могу проверить эти два условия в одной инструкции if?Эти два условия - те, которые должны быть выполнены в одном операторе if.Можно ли использовать одно условие?

enter image description here

Я использую приложения на C # и WinForms.Кто-нибудь, пожалуйста, помогите в этом?

РЕДАКТИРОВАТЬ:

  Category names
     name 1
     name 2
     name 3

   prices
    >100
    >200
    300+

Если я нажимаю на название категории, а затем я нажимаю на ценовой диапазон, я хочу сделать что-то,Можно ли сделать и то, и другое при проверке состояния?

1 Ответ

1 голос
/ 03 сентября 2011

Попробуйте использовать событие SelectedIndexChanged следующим образом:

void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
    var selectedItems = listView1.SelectedItems.Cast<ListViewItem>();
    var passed = (selectedItems.Select(l => l.Group.Name).Distinct().Count() == 2 && selectedItems.Count() == 2);
    if (passed)
    {
         //Do something...
    }
}

Редактировать (на основе комментариев)

Для извлечения каждого выбранного элемента используйте следующее:

Примечание: Чтобы код, приведенный ниже, работал, вам необходимо установить для свойства Name каждой из групп ListViewGroup значение "Category" и "Цены" соответственно.

void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
    var selectedItems = listView1.SelectedItems.Cast<ListViewItem>();
    var passed = (selectedItems.Select(l => l.Group.Name).Distinct().Count() == 2 && selectedItems.Count() == 2);
    if (passed)
    {
        var categoryItem = selectedItems.Where(l => l.Group.Name.ToLower() == "category").Single();
        var priceItem = selectedItems.Where(l => l.Group.Name.ToLower() == "prices").Single();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...