检查列表视图组项目的两个条件

时间:2011-09-02 22:38:07

标签: c# .net winforms listview

我有列表视图(有一列)。我已将此列表视图分为两组,如下图所示。

我的问题是:如何找到这样的选择事件:如果我点击奇数组项目(“一个”)然后如果我点击甚至组项目(“两个”),我想做点什么。 / p>

如何在单个if声明中检查这两个条件?这两个条件是需要在单个if语句中完成的条件。是否可以使用单一条件?

enter image description here

我正在使用C#和WinForms应用程序。有人请帮忙吗?

编辑:

  Category names
     name 1
     name 2
     name 3

   prices
    >100
    >200
    300+

如果我点击类别名称,然后点击价格范围,我想做点什么。是否有可能在单一条件检查中同时进行?

1 个答案:

答案 0 :(得分:1)

尝试使用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...
    }
}

修改(根据评论)

要检索每个选定的项目,请使用以下内容:

注意:要使以下代码生效,您需要将每个ListViewGroup的Name属性分别设置为“Category”和“Price”。

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();
    }
}