Windows Forms DataGridView 컨트롤의 데이터 디스플레이 모드

DataGridView 컨트롤은 바인딩, 바인딩되지 않음 및 가상의 세 가지 고유한 모드로 데이터를 표시할 수 있습니다. 요구 사항에 따라 가장 적합한 모드를 선택합니다.

바인딩 안 됨

바인딩되지 않은 모드는 프로그래밍 방식으로 관리하는 비교적 적은 양의 데이터를 표시하는 데 적합합니다. 바인딩된 모드에서와 같이 데이터 원본에 DataGridView 컨트롤을 직접 연결하지 않습니다. 대신, 일반적으로 DataGridViewRowCollection.Add 메서드를 사용하여 컨트롤을 직접 채워야 합니다.

바인딩되지 않은 모드는 정적, 읽기 전용 데이터 또는 외부 데이터 저장소와 상호 작용하는 고유한 코드를 제공하려는 경우에 특히 유용할 수 있습니다. 그러나 사용자가 외부 데이터 원본과 상호 작용하도록 하려면 일반적으로 바인딩된 모드를 사용합니다.

읽기 전용 바인딩되지 않은 DataGridView을(를) 사용하는 예제는 방법: 바인딩되지 않은 Windows Forms DataGridView 컨트롤 만들기를 참조하세요.

Bound

바인딩된 모드는 데이터 저장소와의 자동 상호 작용을 사용하여 데이터를 관리하는 데 적합합니다. DataSource 속성을 설정하여 DataGridView 컨트롤을 데이터 원본에 직접 연결할 수 있습니다. 컨트롤이 데이터에 바인딩된 경우 데이터 행은 사용자 쪽에서 명시적 관리 없이도 푸시 및 끌어오게 됩니다. AutoGenerateColumns 속성이 true인 경우 데이터 원본의 각 열에 있는 컨트롤에 해당 열이 만들어집니다. 고유한 열을 만들려는 경우 이 속성을 false(으)로 설정하고 구성할 때 DataPropertyName 속성을 사용하여 각 열을 바인딩할 수 있습니다. 기본적으로 생성되는 형식이 아닌 열 형식을 사용하려는 경우에 유용합니다. 자세한 내용은 Windows Forms DataGridView 컨트롤의 열 형식을 참조하세요.

바인딩된 DataGridView 컨트롤을 사용하는 예제는 연습: Windows Forms DataGridView 컨트롤의 데이터 유효성 검사를 참조하세요.

바인딩된 모드에서 DataGridView 컨트롤에 바인딩되지 않은 열을 추가할 수도 있습니다. 이 기능은 사용자가 특정 행에서 작업을 수행할 수 있도록 하는 단추 또는 링크 열을 표시하려는 경우에 유용합니다. 또한 바인딩된 열에서 계산된 값이 있는 열을 표시하는 것도 유용합니다. CellFormatting 이벤트에 대한 처리기에서 계산 열의 셀 값을 채울 수 있습니다. 그러나 데이터 원본으로 DataSet 또는 DataTable을(를) 사용하는 경우 DataColumn.Expression 속성을 사용하여 계산 열을 대신 만드는 것이 좋습니다. 이 경우 DataGridView 컨트롤은 데이터 원본의 다른 열과 마찬가지로 계산 열을 처리합니다.

바인딩된 모드에서 바인딩되지 않은 열을 기준으로 정렬하는 것은 지원되지 않습니다. 사용자가 편집할 수 있는 값을 포함하는 바인딩된 모드에서 바인딩되지 않은 열을 만드는 경우 컨트롤이 바인딩된 열별로 정렬될 때 이러한 값을 유지 관리하도록 가상 모드를 구현해야 합니다.

가상

가상 모드를 사용하면 사용자 고유의 데이터 관리 작업을 구현할 수 있습니다. 이는 컨트롤이 바인딩된 열별로 정렬될 때 바인딩된 모드에서 바인딩되지 않은 열의 값을 유지하는 데 필요합니다. 그러나 가상 모드의 기본 사용은 대량의 데이터와 상호 작용할 때 성능을 최적화하는 것입니다.

관리하는 캐시에 DataGridView 컨트롤을 연결하고, 코드는 데이터 행을 푸시하고 끌어올 때 제어합니다. 메모리 공간을 작게 유지하려면 캐시 크기가 현재 표시된 행 수와 비슷해야 합니다. 사용자가 새 행을 보기로 스크롤하면 코드는 캐시에서 새 데이터를 요청하고 필요에 따라 메모리에서 이전 데이터를 플러시합니다.

가상 모드를 구현하는 경우 데이터 모델에 새 행이 필요한 시기와 새 행 추가를 롤백해야 하는 시기를 추적해야 합니다. 이 기능의 정확한 구현은 데이터 모델의 구현 및 데이터 모델의 트랜잭션 의미 체계(커밋 범위가 셀 또는 행 수준에 있는지 여부)에 따라 달라집니다.

가상 모드에 대한 자세한 내용은 Windows Forms DataGridView 컨트롤에서 가상 모드를 참조하세요. 가상 모드 이벤트를 사용하는 방법을 보여 주는 예제는 연습: Windows Forms DataGridView 컨트롤에서 가상 모드 구현을 참조하세요.

참고 항목