[英]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.