2013-02-28 130 views
1

我有一個ListView MultiSelect = false,View = Details和CheckBoxes = True。我正在逐步完成並控制應用程序中的可見性。我目前正在使用下面代碼的Else部分。但它沒有考慮被選中的第一個項目,它只是打開第二個項目。並且該項目是否被選中(已經可見),並關閉了可見性。我將與項目相關的元素與已經可見的元素進行比較。我的應用程序在currentItem.Checked循環中崩潰。並沒有考慮到組合(首先和檢查)。我怎麼可以編碼?ListView選擇邏輯

 int indexCount = listView1.Items.Count; 

     ListViewItem currentItem = listView1.SelectedItems[0]; 
     int currentIndex = currentItem.Index; 

     if (currentItem.Index == 0) 
     { 
      //listView1.SelectedItems[0] on 
     } 

     if (currentItem.Index == indexCount) 
     { 
      //end 
     } 

     if (currentItem.Checked == true) 
     { 
      while (currentItem.Checked == true) 
      { 
       listView1.SelectedIndices.Clear(); 
       listView1.SelectedIndices.Add(currentIndex + 1); 
      } 
      //listView1.SelectedItems[0] on 
     } 

     else 
     { 
      //listView1.SelectedItems[0] off 

      listView1.SelectedIndices.Clear(); 
      listView1.SelectedIndices.Add(currentIndex + 1); 

      //listView1.SelectedItems[0] on     
     } 
+1

我不太明白你想要達到什麼目的,你可以添加一些細節? – stuartd 2013-02-28 14:20:25

+0

我們需要崩潰原因的錯誤信息。 – 2013-02-28 14:29:45

+0

我想你是刪除的項目,因爲currentItem是一個指示的引用,你正在處理它,當你使用Clear方法。所以你currentItem變成一個空值。 – Justin 2013-02-28 14:39:25

回答

0

目前尚不清楚您要做什麼。

您基本上正在挑選一個選定的項目並將其放置在'currentItem'中。如果該項目被選中爲true,則循環播放直到?爲什麼?