2011-08-13 16 views
2

私は上半分にデータグリッド、下半分に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です。行は表示されません。

どこで問題を検索すればよいですか? ご協力いただきありがとうございます!

答えて

0

に返されたコレクションの種類は?ContactPersonViewModel.GetContacts()

私はObservableCollection、またはINotifyCollectionChangedを実装している他のコレクションである必要があります。

+0

RJロハン、あなたのヒントありがとうございます。 GetContacts()は実際にIListを返します。 – kzub

関連する問題