2014-01-05 2 views
0

나는 listview를 채우는 데 사용할 여러 값을 가진 사전이 있습니다.여러 값으로 사전에서 목록보기를 채우는 #

이 나는 ​​'1'과 'invalidArgument = 값 "ArgumentOutOfRangeException이 처리되지 않은였다"'인덱스 '에 대해 유효하지 않은 얻을 여기

내가 revelant 코드의 충분 무슨 희망이다.

public partial class frmResultList : Form 
{ 

    public class MyLookupCustList 
    { 
     public string sEstNum { get; set; } 
     public string sLName { get; set; } 
     public string sFName { get; set; } 
     public string sCity { get; set; } 
    } 

    public frmResultList(int iMyCount, Dictionary<string, frmResultList.MyLookupCustList> MyDictList) 
    { 
     InitializeComponent(); 
     fillListView(iMyCount, MyDictList); 
    } 

    public void fillListView(int iMyCount, Dictionary<string, frmResultList.MyLookupCustList> MyDictList) 
    { 

     listView1.Clear(); 

     ListViewItem item; 

     for (int i = 0; i < iMyCount; i++) 
     { 
      listView1.Items.Clear(); 
      var o = MyDictList[i.ToString()]; 
      var myListViewItem = new ListViewItem(); 

      myListViewItem = this.listView1.Items.Add(i.ToString()); 
      myListViewItem.SubItems[1].Text = o.sEstNum; 
      myListViewItem.SubItems[2].Text = o.sLName; 
      myListViewItem.SubItems[3].Text = o.sFName; 
      myListViewItem.SubItems[4].Text = o.sCity; 

      listView1.Items.Add(myListViewItem); 

     } 

     listView1.View = View.Details;   
     listView1.Show(); 
     listView1.Refresh(); 


    }  
내가 여기에 첫 번째 하위 항목 를 삽입 할 때

나는 예외를 얻을 ===> myListViewItem.SubItems [1]는 .text = o.sEstNum, 이 도와주세요, 내가이 문제를 해결해야 할 일을

답변

0

당신에게? ind와 함께 항목을 업데이트하려고합니다. ex [1], 해당 항목이 아직 존재하지 않으면 먼저 항목을 만들어야합니다. 액세스하려는 하위 항목에 대해서도 마찬가지입니다. 2, 3, 4 항목이 먼저 존재하는지 여부를 확인하고 업데이트하는 경우 로직을 추가해야합니다. 그렇지 않으면 항목을 추가해야합니다.

+0

어떻게 만들 수 있습니까? 그 코드를 보여줄 수 있습니까? – user3162901

+0

o.sEstNum을 보면 "648"입니다. – user3162901

+0

오른쪽, o.sEstNum은 문제가 아니며 방정식의 반대편입니다. 디버깅 할 때, 당신의'myListViewItem.SubItems'을 보아라. 나는 그것이 null 일 것이라고 생각한다. 이 경우 하위 항목 목록에 항목을 작성해야 액세스 할 수 있습니다. 샘플을 얻으려고하는데 ListViewItem에'SubItems' 속성이 보이지 않습니다. –

관련 문제