2010-08-23 4 views
2

그래서 지금 컬렉션에있는 각 항목을 표시하는 목록 상자에있는 컬렉션이 있습니다. 목록 상자를 gridview로 바꿔서 체크 상자와 다른 드롭 다운을 추가 할 수 있습니다. 이렇게하는 방법을 설명하는 자습서를 찾을 수 없습니다.컬렉션을 데이터 그리드로 바꾸기

예를 들어 내 컬렉션에는 2 개의 항목이 있으며 각 항목에는 여러 개의 열이 있습니다.

  • [0] (747) 제트
    • [0] 승객 량 : 417
    • [1] 처음 행 1967
  • [0] A380
    • [0 ] 승객 수 : 853
    • [1] 첫 비행편 : 2005

는 지금 내 목록 상자

foreach (AMAPnr.Airplane airElement in AMAPnr.Airplanes) 
{ 
    lstPlanes.Items.Add(
     "PassengerAmount: " + airElement.Passenger + " First Flight:" + 
     airElement.FirstFlight.ToString()); 
} 

어떻게 내가있는 gridview에이 변경에 대한 갈 것이라고이 코드를 사용?

답변

2

업데이트 : OP는 잘못된 태그를 선택했음을 분명히했으며 이는 실제로 WinForms를위한 것입니다. 내가이 예 a를 표시하는 사용자 정의 비행기 클래스를 사용했습니다

private class Airplane 
{ 
    public string AirplaneName { get; set; } 
    public int PassengerAmt { get; set; } 
    public int FirstFlight { get; set; } 
} 

public Form1() 
{ 
    InitializeComponent(); 

    var planes = new List<Airplane>(); 
    planes.Add(new Airplane() { AirplaneName = "747 Jet", PassengerAmt = 417, FirstFlight = 1967 }); 

    dataGridView1.DataSource = planes; 

} 

:

당신이 당신의 폼에 DataGridView을 추가 한 다음 폼의 코드 숨김에 다음 코드를 삽입하는 경우, 그것은 치료를 작동 코드가 어떻게 구조화되었는지 정확하게 알지 못합니다. 비교적 쉽게 사용자 정의 데이터 유형을 플러그인 할 수 있어야합니다.

+1

을 할 수

myDataGrid.DataSource = getItems(AMAPnr.Airplanes);을 할 것입니다 창 형태의이 작품? – Spooks

+0

@ Spooks, 그냥 시도하고'.DataBind()'line =) – Rob

+1

@ Rob 덕분에, 나는 그것의 데이터 바인딩을 생각하지만, 그것을 표시하는 방법을 모르겠다. (머리글/열 채우기) – Spooks

1
public IEnumerable<AMAPnr.Airplane> getItems(Planes) 
    { 
     foreach (AMAPnr.Airplane airElement in Planes) 
     { 
      yield return airElement; 
     } 
     yield break; 
    } 

은 그럼 그냥, 당신은 또한 단지 내 태그 중 하나로서 asp.net을 추가 실수로 myDataGrid.DataSource = lstPlanes;

관련 문제