繁体   English   中英

在列表视图C#中移动选中项目的组

[英]Moving the group of a checked item in a listview C#

我有两个组的列表视图。 我想要它,以便当我检查项目时,它移到第二组,而当我取消它时,它又移回到第一组。

这是到目前为止我尝试过的代码:

private void lstServices_ItemChecked(Object sender, ItemCheckedEventArgs e)
{
  foreach (ListViewItem item in lstServices.Items)
   {
     if (item.Checked)
     {
       item.Group = lstServices.Groups[1];
     }
     else
     {
       item.Group = lstServices.Groups[0];
     }
   }
}

首先,我发现它有故障。 当我勾选某项时,它确实倾向于移至第二组,但是当我取消选中它时,有时又回到第一组,有时他们根本不会取消选中,所以我无法弄清原因。

其次,我认为这是一种混乱的方法,每次检查某项内容时,我都会检查整个列表,然后相应地移动。 我假设有一种方法可以解决我刚刚检查的项目,但是我无法解决!

要摆脱循环,您必须执行以下操作:

private void lstServices_ItemChecked(Object sender, ItemCheckedEventArgs e)
{
     ListViewItem item=e.Item;
     if (item.Checked)
     {
         item.Group = lstServices.Groups[1];
     }
     else
     {
         item.Group = lstServices.Groups[0];
     }
}

ItemCheckedEventArgs变量e具有一个属性,返回引发事件的ListViewItem。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM