私は上半分にデータグリッド、下半分にtabcontrolを持つメインウィンドウを持っています。データグリッドには企業のリストが含まれています。下部タブコントロールのタブの1つに、上部データグリッドで選択された会社に対応する連絡担当者に関する情報が含まれています。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は、ユーザーコントロールに定義されています:
企業は、私は次のコードを置き、データグリッドのSelectionChanged Sub内に、メインウィンドウ上で、その後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が割り当てられているように見えますが、担当者のデータグリッドはEMPTYです。行は表示されません。
どこで問題を検索すればよいですか? ご協力いただきありがとうございます!
RJロハン、あなたのヒントありがとうございます。 GetContacts()は実際にIListを返します。 – kzub