我有一個列表視圖與兩個組。我希望這樣,當我檢查一個項目時,它會移動到第二組,當我取消選中它時,它會移回第一組。在列表視圖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];
}
}
}
首先我覺得馬車。當我剔出某些東西時,它傾向於轉移到第二組,但是當我將它解開時,有時它會回到第一組,有時候他們根本不會解決問題,我無法解決原因。
其次,我認爲這是一個混亂的方式來做到這一點,每次檢查的東西我檢查整個列表,然後相應地移動。我假設有一種方法可以解決剛剛檢查過的項目,但我無法解決問題!
第一個快速的東西..你是循環所有的項目?使用e.Item並僅更改激發事件的listitem的組。 – Pikoh
這就是我想要擺脫的,它的循環方面,但我不知道如何。當你說使用e.item,你的意思是改變它是這樣的: private void lstServices_ItemChecked(Object sender,ItemCheckedEventArgs ** e.item **)? 這給出了一個錯誤。我完全不符合標準嗎? – Coozbiscuit
不要更改事件處理程序方法,只需添加:'ListViewItem item = e.Item; if(item.Checked)...' – Pikoh