2013-07-22 2 views
2

각기개의 컨트롤이있는 VB winforms 폼이 있습니다. 각각 첫 번째로 생성 된 세 개의 관련 엔터티의 데이터 (DataGridView 또는 바인딩 된 텍스트 상자를 통해)가 표시됩니다.여러 부모 엔티티 레코드와 관련된 DataGridView 컨트롤에 자식 데이터 표시

가 나는 datagridview 현재 tbl_PrimaryDealerGroup 기록 모두에 관련 만 tbl_Distribution_DealerModel_OverAlts 레코드를 삭제/편집/추가 할 수 있도록 &을 보여주는이 필요 두 가지 일반적인 필드에 가입하고 현재 tbl_SeriesManufacturer 레코드 ((필드 tbl_PrimaryDealerGroup.DealerGroupID = tbl_Distribution_DealerModels_OverAlts.FirstDealerGroupID에 가입) : aus_series_cdeManufacturerID). tbl_Distribution_DealerModel_OverAlts는 다른 두 테이블의 관계의 많은 측면에 : 나는이 가질 수있는 방법

Entities

아이 엔티티의 datagridview가 두 개 (또는 그 이상) 지배 기업의 각 레코드에 관련된 레코드 만 표시 ? 내가이 프로젝트에 세 개 이상의 부모 자식 엔티티 연관을 위해 일반적으로 적용 할 수있는 답변을 감상 할 수 있도록 마침내 자신이 정리

답변

0

또한 필요할 수 있습니다 :

Private Sub bs_tblSM_tblPDG_CurrentChanged(sender As System.Object, e As System.EventArgs) Handles bs_tbl_Series_Manufacturer.CurrentChanged, bs_tbl_PrimaryDealerGroup.CurrentChanged 
    If bs_tbl_Series_Manufacturer.Current IsNot Nothing And bs_tbl_PrimaryDealerGroup.Current IsNot Nothing Then 
     Dim Series As String = bs_tbl_Series_Manufacturer.GetItemProperties(Nothing)("aus_series_cde").GetValue(bs_tbl_Series_Manufacturer.Current) 
     Dim Manufacturer As Byte = bs_tbl_Series_Manufacturer.GetItemProperties(Nothing)("ManufacturerID").GetValue(bs_tbl_Series_Manufacturer.Current) 
     Dim PDG As Integer = bs_tbl_PrimaryDealerGroup.GetItemProperties(Nothing)("DealerGroupID").GetValue(bs_tbl_PrimaryDealerGroup.Current) 
     Dim ChangeFilter As Boolean = False 
     If m_CurrentSeries <> Series Then 
      m_CurrentSeries = Series 
      ChangeFilter = True 
     End If 
     If m_CurrentManufacturer <> Manufacturer Then 
      m_CurrentManufacturer = Manufacturer 
      ChangeFilter = True 
     End If 
     If m_CurrentPDG <> PDG Then 
      m_CurrentPDG = PDG 
      ChangeFilter = True 
     End If 
     If ChangeFilter Then 
      Dim DlrMdlOverAlts As IEnumerable(Of tbl_Distribution_DealerModel_OverAlts) 
      DlrMdlOverAlts = From DDMOA As tbl_Distribution_DealerModel_OverAlts In m_Context.tbl_Distribution_DealerModel_OverAlts.Local.ToBindingList _ 
          Where DDMOA.aus_series_cde = m_CurrentSeries And DDMOA.ManufacturerID = m_CurrentManufacturer And DDMOA.FirstDealerGroupID = m_CurrentPDG _ 
          Select DDMOA 
      bs_tbl_Distribution_DealerModel_OverAlts.DataSource = DlrMdlOverAlts.ToList 
      Me.dgvtbcDealerModelOverAlts_aus_series_cde.DefaultCellStyle.NullValue = m_CurrentSeries.ToString 
      Me.dgvtbcDealerModelOverAlts_ManufacturerID.DefaultCellStyle.NullValue = m_CurrentManufacturer.ToString 
      Me.dgvtbcDealerModelOverAlts_FirstDealerGroupID.DefaultCellStyle.NullValue = m_CurrentPDG.ToString 
      bs_tbl_Distribution_DealerModel_OverAlts.ResetBindings(False) 
      ChangeFilter = False 
     End If 
    End If 
End Sub 

트릭에 있었다 자식 BindingSource에 부모 BindingSourceDataMember을 사용하려고 시도하지 말고, 부모 BindingSourceCurrentChanged에있는 코드의 엔티티를 연결하십시오.

관련 문제