2011-04-26 2 views
1

목록 상자를 채우는 데 사용되는 IList를 사용하는 예제가 제공되었습니다. 동일한 프로세스를 사용하여 목록으로 개체를 채우지 만 ListView를 채우고 싶습니다.양식의 클래스 채우기 목록 뷰에있는 개체의 IList 만들기

객체 클래스의 코드는 다음과 같습니다

:

이 같은
public void ListClients(IList list) 
{ 
    list.Clear(); 
    for (int i = 0; i < MAX_CLIENTS; ++i) 
    { 
     if (myClients[i] == null) 
      continue; 
     list.Add(myClients[i].FullName); 
    } 
} 

형태로 코드 : 나는 여러 가지 방법을 시도했지만 내가하지 추측

private void ListClientButton_Click(object sender, EventArgs e) 
{ 
    CDB.ListClients(ListClientsBox.Items); 
} 

IList 개념을 충분히 이해하십시오. IList에서 Details 뷰의 listview를 채울 수 있습니까?

+0

계약 IList. 그래서 그것은 당신의 ListClients 메소드에서 대체 가능해야합니다. IList는 IList로 사용되기를 원하는 클래스가 구현해야하는 계약이다. 예 : ListViewItemCollection http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.listviewitemcollection%28v=vs.80%29.aspx – Gishu

+0

나는 그것을 시도했지만 양식의 목록보기에서만 첫 번째 열에 객체 이름을 배치합니다. – flo

답변

2

ListView 컨트롤에 열이 설정되어 있습니까? 그렇지 않은 경우 콘텐츠가 표시되지 않습니다. 시도 :

private void ListClientButton_Click(object sender, EventArgs e) 
{ 
    ListClientsBox.Columns.Add("Full name"); 
    CDB.ListClients(ListClientsBox.Items); 
} 

편집 : 나는 몇 가지 테스트를 실행 한

, 당신은 코멘트에 게시 코드가 잘 될 것 같다. 당신은 당신이 목표 디스플레이에 따라 약간의 ListView의 속성을 조정해야 할 수도 있습니다 :

// perpare ListView beforehand 
this.listView.Columns.Add("First name"); 
this.listView.Columns.Add("Email"); 
this.listView.Columns.Add("Country"); 
this.listView.View = View.Tile; 
// if tile height is too small, some data might not be visible 
this.listView.TileSize = new Size(180, 50); 

// sample data 
var people = new[] 
{ 
    new { FirstName = "John", Email = "[email protected]ain.com", Country = "USA" }, 
    new { FirstName = "Betty", Email = "[email protected]", Country = "Canada" }, 
    new { FirstName = "Steven", Email = "[email protected]", Country = "Brazil" }, 
}; 

foreach (var person in people) 
{ 
    ListViewItem item = new ListViewItem(person.FirstName); 
    item.SubItems.Add(person.Email); 
    item.SubItems.Add(person.Country); 
    this.listView.Items.Add(item); 
} 

그리고 이것은 ListView에 모두 View.TileView.Details로, 같은 모습입니다 : 이 ListView examples

예 ListView.Items도를 구현
+0

열이 설정되어 있습니다. 내가하고 싶은 것은 게시 한 예와 조금 다릅니다. 개체 목록을 사용하여 목록보기를 다음과 같이 채우고 자합니다. – flo

+0

foreach (SalesRecord s in sales) { Salesperson p = s.SalesPerson; ListViewItem item = 새 ListViewItem (p.FullName); item.SubItems.Add (p.Email); item.SubItems.Add (p.Country); item.SubItems.Add (p.Phone); list.Add (item); } – flo

+0

@flo : 코드를 사용해 보셨습니까? 작동하지 않는 것은 무엇입니까? –