У меня есть одна страница с Tabcontrol
которая содержит два файла: DataGrids
. Я могу связать первый без сучка и задоринки, но второй не получит никаких данных. Я чувствую, что это может быть связано с чем-то связанным с DataContext
, но я все еще не уверен.DataGrid Not Binding Correctly
Вот как я связываю свои первые DataGrid
;
private async void FillDataGrid()
{
var Companies = new ObservableCollection<CompanyModel>();
var waitWindow = new PleaseWait();
waitWindow.Show();
Companies = await ReturnCompanies();
CompanyICollectionView = CollectionViewSource.GetDefaultView(Companies);
DataContext = this;
dataGrid.SelectedIndex = 0;
waitWindow.Close();
}
DataGrid
сам по себе выглядит следующим образом;
<DataGrid x:Name="dataGrid" ColumnWidth="*" IsReadOnly="true"
Margin="10" FontSize="14"
HeadersVisibility="Column" AutoGenerateColumns="False"
CanUserAddRows="False" SelectionChanged="DataGridSelectionChanged"
IsSynchronizedWithCurrentItem="True"
EnableRowVirtualization="True"
ItemsSource="{Binding CompanyICollectionView}"
MinColumnWidth="0">
<DataGrid.Columns>
<DataGridTextColumn Header="Company Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Town" Binding="{Binding Town}"/>
<DataGridTextColumn Header="Post Code" Binding="{Binding Postcode}"/>
</DataGrid.Columns>
</DataGrid>
Мой второй DataGrid
связан в очень похожим образом;
private async void FillContactsDataGrid(object sender, MouseButtonEventArgs e)
{
var Contacts = new ObservableCollection<ContactsModel>();
var waitWindow = new PleaseWait();
waitWindow.Show();
Contacts = await ReturnContacts();
ContactsICollectionView = CollectionViewSource.GetDefaultView(Contacts);
DataContext = this;
contactsDataGrid.SelectedIndex = 0;
waitWindow.Close();
}
Второй DataGrid
;
<DataGrid x:Name="contactsDataGrid" ColumnWidth="*" IsReadOnly="true"
Margin="10" FontSize="14"
HeadersVisibility="Column" AutoGenerateColumns="False"
CanUserAddRows="False"
IsSynchronizedWithCurrentItem="True"
EnableRowVirtualization="True"
ItemsSource="{Binding ContactsICollectionView}"
MinColumnWidth="0"
Grid.Row="1" Grid.ColumnSpan="2">
<DataGrid.Columns>
<DataGridTextColumn Header="Date" Binding="{Binding ContactDate, StringFormat=\{dd-MM-yyyy\}}"/>
<DataGridTextColumn Header="To Person" Binding="{Binding PersonName}"/>
<DataGridTextColumn Header="Contract" Binding="{Binding Contract}"/>
<DataGridTextColumn Header="Type" Binding="{Binding TypeOfContact}"/>
<DataGridTextColumn Header="Made By" Binding="{Binding ContactMadeBy}"/>
<DataGridTextColumn Header="Contract Summary" Binding="{Binding ContactDescription}"/>
</DataGrid.Columns>
</DataGrid>
я петельные через ContactsICollectionView
и распечатать детали контактов и не было вопроса, поэтому я знаю, что коллекции заполняются правильно, это просто связывание DataGrids
, где я буду неправильно.
используйте https://snoopwpf.codeplex.com/ и проверьте привязку и DataContext во время выполнения – blindmeis