2012-10-25 47 views
0

我是新来的c#。在项目中,我有两个控件列表框和ListView比较列表框项目和基于索引的ListView项目

ListBox --> lbxEmpName 
ListView --> lvEmpDetails 

我尝试下面的代码:

 if (lvEmpDetails.Items.Count > 0) 
     { 
      for (int intCount = 0; intCount < lbxEmpName.Items.Count; intCount++) 
      { 
       for (int intSubCount = 0; intSubCount < lvEmpDetails.Items.Count; intSubCount++) 
       { 
       if (lvEmpDetails.Items[intSubCount].Equals(lbxEmpName.Items[intCount])) 
       { 
        lbxEmpName.Items.Remove(lbxEmpName.Items[intCount]); 
       } 
       } 
      } 
     } 

如果我运行上面的代码中,有ListView的项目和列表框项目之间不匹配(逸岸有必须是一些匹配)。当我调试我的代码时,我看到下面的东西:这是说SelectedItem,而我在这里给Items(这就是为什么我的程序不匹配项目)
它为什么显示SelectedItem = ""而不是Items? 我在代码中做错了什么?请建议。

enter image description here enter image description here

+0

你需要点击那个'+'图标才能获得物品。 – Maheep

+0

列表框中有项目..我在这里做错了什么。 –

+0

如您的屏幕截图所示,列表框中有10个项目。尝试通过点击+浏览“非公众成员”。你会得到的内容 – Maheep

回答

2

ListView的Items包含ListViewItem类型的对象。因此,将这些与ListBox的Items中的对象进行比较是没有用的。
如果要比较他们的文字,你必须写这样的事:

if (lvEmpDetails.Items[intSubCount].Text == (string)lbxEmpName.Items[intCount]) 
{ 
    // Do something here 
} 

请注意,ListViewItem可以有多个分项目及其Text属性返回其数据的第一列。

+0

是的,这工作。谢谢。 –

1

比较要比较不是对象本身的字符串值。