Datagrid - строка не отображается - PullRequest
2 голосов
/ 13 августа 2011

У меня есть главное окно с сеткой данных в верхней половине и tabcontrol в нижней половине.Сетка данных содержит список компаний.Одна из вкладок нижней вкладки управления содержит информацию о контактных лицах, соответствующих компании, выбранной в верхней таблице данных.

На вкладке я размещаю пользовательский контроль.

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

Пользовательский контроль "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).

Проблема заключалась в том, как передать номер SAPкомпании, выбранной в верхней сетке данных для контроля пользователя.Я создал делегата:

Public Delegate Sub CompanyContactsUpdate(ByVal sap As String)

, затем в главном окне, в SubChanged Sub Selection of данных компании я разместил следующий код:

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

Функция UpdateContactsXCompanyDatagrid определенаusercontrol:

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, кажется, назначен, но сетка данных контактных лиц пуста.Строка не отображается.

Где искать проблему?Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 19 августа 2011

Какой тип коллекции возвращается из вашего звонка на ContactPersonViewModel.GetContacts () ?

Я полагаю, что это должен быть ObservableCollection или какой-то другой набор, реализующий INotifyCollectionChanged.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...