2013-02-28 98 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,则循环播放直到?为什么?