2010-04-27 4 views
0

C#의 Windows 응용 프로그램 중 하나에서 Dev Express Grid View 컨트롤을 사용하여 일부 데이터를 바인딩하고 사용자에게 표시합니다. 이 목적을 위해 정의 된 속성을 가진 사용자 지정 비즈니스 개체가 있습니다. 그리드의 DataSource을 내 사용자 지정 비즈니스 개체 목록에 간단하게 설정합니다.Windows에서 Dev Express Grid보기에 동적으로 필드 표시

이전에는 그리드에 표시 할 열이 동적이라는 요구 사항이있었습니다. 즉, 디자인 타임에 어떤 필드를 표시해야하는지 알 수 없습니다.

저는 DataSource을 설정하고 코드로 수동으로 그리드를 채우려는 생각을하고있었습니다. 하지만 이것은 많은 그리드의 기능이 제대로 작동하지 않을 것이라고 생각합니다. 예를 들어 헤더 영역으로 필드를 드래그 앤 드롭하여 데이터를 그룹화하는 것입니다. 런타임에서 특정 필드를 건너 뛰도록 런타임에 그리드를 알려주는 방법이 있습니까? 그리드에 데이터 바인딩 할 때 BO의 목록?

답변

0

이것은 매우 간단합니다. 우리는 항상 그렇게합니다. 그리드를 데이터 소스에 바인딩하기 만하면 나머지 작업이 자동으로 수행됩니다.

필드를 숨기는 것은, 또한 쉽게 그냥 당신이 무엇을해야에이

C#

grid.FocusedView.Columns["Col1"].VisibleIndex = -1; 

VB

grid.FocusedView.Columns("Col1").VisibleIndex = -1; 
+0

VisibleIndex처럼 뭔가를 할 수

을 -1로의 VisibleIndex 설정 -1로 설정합니까? 세부 사항을 적어 주시면 고맙겠습니다. 말하자면, 속성이있는 20 개의 필드가있는 사용자 지정 개체가 있고 런타임에 5 개의 필드 만 눈금에 바인딩해야한다고 결정합니다. dataSource를 목록에 설정하면 5 개의 해당 필드 만 표시됩니다. ? – Bhaskar

+0

죄송합니다. VisibleIndex 속성은 활성 뷰의 Columns 컬렉션에서 찾을 수있는 Column에 설정됩니다. 내 대답을 편집하고 예제를 추가했습니다. –

+0

Alex 이것은 열 표시를 숨기는 역할을하지만 필드는 눈금에 바인딩 된 채로 있습니다. 그리드가 필요하지 않은 필드를 바인딩하지 않도록 지시하는 방법을 찾고있었습니다. 예를 들어, 사용자 정의 비즈니스 객체의 필드를 바인드 할 필드, 열의 위치, 열의 캡션 등을 지정할 수있는 필드 매핑을 만들 수 있습니다. – Bhaskar