2011-08-13 3 views
2

나는 위쪽 절반에는 데이터 격자가 있고 아래쪽 절반에는 tabcontrol이있는 주 창이 있습니다. DataGrid에는 회사 목록이 들어 있습니다. 하단 tabcontrol의 탭 중 하나는 상단 DataGrid에서 선택한 회사에 해당하는 담당자의 정보를 포함합니다.Datagrid - 행이 표시되지 않습니다.

탭에서 나는 사용자 정의 컨트롤을 배치합니다.

<TabItem Name="pgContactsXCompany"> 
    <local:ContactsXCompany x:Name="contactsXCompany"/> 
</TabItem> 

UserControl을 "ContactsXCompany는"선택한 회사에 해당 연락처 사람의 목록과 그것에 데이터 그리드가 있습니다.

<dg:DataGrid Name="dgContactsXCompanyList" 
      ItemsSource = "{Binding}" 
      AutoGenerateColumns="False" 
      IsReadOnly="True"> 
<dg:DataGrid.Columns> 
    <dg:DataGridTextColumn Header="Id" Width="Auto" Binding="{Binding Path=intIDContact}" Visibility="Hidden" /> 
    <dg:DataGridTextColumn Header="Jméno" Width="Auto" Binding="{Binding Path=txtName}" /> 
    <dg:DataGridTextColumn Header="Příjmení" Width="Auto" Binding="{Binding Path=txtSurname}" /> 
    <dg:DataGridTextColumn Header="Pobočka" Width="Auto" Binding="{Binding Path=txtBranchOffice}" /> 
    <dg:DataGridTextColumn Header="Město" Width="Auto" Binding="{Binding Path=txtTown}" /> 
</dg:DataGrid.Columns> 
</dg:DataGrid> 

연락처는 선택한 회사 (회사의 SAP 번호)의 ID를 매개 변수로 사용하는 함수에 의해로드됩니다.

문제는 상위 DataGrid에서 선택한 회사의 SAP 번호를 usercontrol에 전달하는 방법이었습니다.

Dim doUpdate As CompanyContactsUpdate 
Dim obj As New ContactsXCompany 
doUpdate = New CompanyContactsUpdate(AddressOf obj.UpdateContactsXCompanyDatagrid) 
doUpdate.Invoke(grid.SelectedItem.txtSap) 

함수 UpdateContactsXCompanyDatagrid이 UserControl을 정의한다 :

회사가 나는 다음과 같은 코드를 배치 데이터 그리드의 인 selectionchanged 하위에, 메인 창에 다음

Public Delegate Sub CompanyContactsUpdate(ByVal sap As String) 

: 나는 대리자를 만들어

Public Class ContactsXCompany 
    Public Sub UpdateContactsXCompanyDatagrid(ByVal Sap As String) 
     Dim d As New ContactPersonViewModel 
     Me.dgContactsXCompanyList.DataContext = d.GetContacts(Sap) 
    End Sub 
End Class 

응용 프로그램을 실행하면 모든 것이 오류없이 작동합니다. 선택한 회사의 Sap 번호는 UpdateContactsXCompanyDatagrid 함수에 올바르게 전달됩니다. Me.dgContactsXCompanyList.DataContext가 할당 된 것처럼 보이지만 담당자의 DataGrid가 비어 있습니다. 행이 표시되지 않습니다.

어디에서 문제를 검색해야합니까? 도움을 주셔서 감사합니다.

답변

0

ContactPersonViewModel.GetContacts()로 호출에서 반환 된 컬렉션의 유형은 무엇입니까?

ObservableCollection이거나 INotifyCollectionChanged를 구현하는 다른 컬렉션이어야한다고 생각합니다.

+0

RJ 로한, 팁 주셔서 감사합니다. GetContacts()는 실제로 IList를 반환합니다. – kzub

관련 문제