2010-08-21 2 views
1

가능한 가격을 표시하는 콤보 상자 열이있는 DataGridView가 있는데 특정 행과 관련된 가격 만 표시하고 싶습니다.DataGridView, 데이터 바인딩 및 콤보 상자 필터링

자세한 내용은 2 개의 테이블이 채워진 (SQL Server 2005 데이터베이스에서 실행되는 저장 프로 시저에 의해 제공되는) 데이터 집합을 반환하는 클래스 메서드가 있다고 가정 해 보겠습니다.

첫 번째 테이블에는 Order Details 행이 포함되어 있고 두 번째 테이블에는 각 제품에 대해 유효한 가격이 나와 있습니다.

기본적으로 데이터 세트의 내 DataTables는 다음과 같습니다. 데이터 세트에서 내 가격 테이블에

OrderDetails 

ProductType | ProductID | Qty | SelectedPrice  | 
DairyProduct | Milk  | 5 | 5.50    | 
Fruit  | Orange | 7 | 6.90    | 

등등 ...

, 나는 주문일 모든 제품에 대한 유효한 모든 가격이있다.

Prices 

ProductType | ProductID | Price  | 
DairyProduct | Milk  | 5.50 | 
DairyProduct | Milk  | 6.90 | 
DairyProduct | Milk  | 7.90 | 
Fruits  | Orange | 6.90 | 
Fruits  | Orange | 4.50 | 

등등 ...

나는 사용자가 수정해야하는 DataGridView에, 내 OrderDetails의 테이블을 결합하고있다.

DataGridView의 가격 열에 데이터 세트의 두 번째 테이블 가격을 표시하고 싶습니다.

나는 그것을 할 수 있었고 이제는 각 행에 대해 콤보 상자가 있지만 ComboBox는 내 가격 테이블의 모든 가격을 표시하고 있으며 내가 원하는 것은 가격 만 표시하는 것입니다. 그 특정 제품. 예를 들어, 사용자가 우유 행에서 DataGridView를 클릭하면 모든 우유 가격이 아닌 우유 가격 만 표시됩니다.

나는 그것을 달성하는 방법을 모르겠습니다. 포인터 또는 예제가 있습니까?

미리 감사드립니다.

저는 VS 2008, C# 및 WinForms에서 개발 중입니다.

+0

각 행에 대해 콤보 상자를 만드는 데 사용할 코드를 게시 할 수 있습니까? 그것은 필터링해야 할 때 변경해야하는 코드입니다. 코드가 크게 도움이 될 것입니다. – InSane

+0

DataGridViewComboBoxColumn을 만들고 dataGridViewInstance.Columns.Add 메서드를 사용하여 DataGridViewComboBoxColumn을 추가하고이 열을 DataSource, ValueMember 및 DisplayMembers 속성을 사용하여 데이터 세트 테이블에 바인딩하는 것은 복잡하지 않습니다. –

답변

2

콤보를 데이터 소스에 직접 바인딩하지 않고 객체에 바인딩해야하는 것처럼 보입니다. 개체는 제품 ID별로 그룹화 된 가격 목록입니다.

+0

죄송합니다. 확장 해 주시겠습니까? 아니면 예를 들면? 감사. –

+0

나는 List 객체에 콤보를 묶는 것을 의미합니다. 이 목록은 ProductId = currentID 인 가격 선택으로 작성되었습니다. – Arseny

+0

외부 combobox 경우 실제로 할 수있을 것 같아요,하지만 여기에 combobox dataGridView 내부에있는 이벤트가 내가 현재 행의 ID를 기반으로 필터링 된 목록을 제공하기 위해 반응 할 수 있습니까? –

관련 문제