我有一个datagridview,我想将它与四个连接的表绑定 彼此和照片解释了这种关系 relations of four tables
我尝试将其与wpf绑定,但不能
我的loadData代码是:
CollegeContext cd = new CollegeContext();
var query = (from sc in cd.StudentStatments
join l in cd.Levels on sc.IdLevel equals l.Id
join b in cd.Branches on sc.IdBranch equals b.Id
join su in cd.Subjects on sc.IdSubject equals su.Id
select new DGItem
{
NameSub = su.Name,
TypeOfBranch = b.TypeOfBranch,
Code = su.Code,
NameLev=l.Name,
NumOfStudent = sc.NumberOfStudent
}).ToList();
studentStatmentsDataGrid.ItemsSource = query;
我的xaml是:
<DataGrid x:Name="studentStatmentsDataGrid" AutoGenerateColumns="False" FlowDirection="RightToLeft" EnableRowVirtualization="True" ItemsSource="{Binding }" Margin="128,284,0,0" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Subject.Name}" Header="NameSubjects" Width="SizeToHeader"/>
<DataGridTextColumn Binding="{Binding TypeOfBranch}" Header=" Branch" Width="SizeToHeader"/>
<DataGridTextColumn Binding="{Binding Code}" Header=" code" Width="SizeToHeader"/>
<DataGridTextColumn Binding="{Binding Levels.Name}" Header=" Level" Width="SizeToHeader"/>
<DataGridTextColumn Binding="{Binding NumberOfStudent}" Header="NumberOfStudent" Width="SizeToHeader"/>
</DataGrid.Columns>
</DataGrid>
和我的用户控制资源:
<UserControl.Resources>
<Color x:Key="1">#FF3580BF</Color>
<Color x:Key="Color1">#FFECE3E3</Color>
<Color x:Key="Color2">#FF3580BF</Color>
<Astmara6:Branches x:Key="branches"/>
<CollectionViewSource x:Key="branchesViewSource" Source="{Binding _Branches, Source={StaticResource branches}}"/>
<Astmara6:Section x:Key="section"/>
<CollectionViewSource x:Key="sectionsViewSource" Source="{Binding Sections, Source={StaticResource section}}"/>
<Astmara6:Levels x:Key="levels"/>
<CollectionViewSource x:Key="levelsViewSource" Source="{Binding _Levels, Source={StaticResource levels}}"/>
<Astmara6:Subjects x:Key="subjects"/>
<CollectionViewSource x:Key="subjectsViewSource" Source="{Binding _Subjects, Source={StaticResource subjects}}"/>
<Astmara6:TeachSubBranch x:Key="teachSubBranch"/>
<CollectionViewSource x:Key="subjectsViewSource1" Source="{Binding Subjects, Source={StaticResource teachSubBranch}}"/>
<Astmara6:StudentStatment x:Key="studentStatment"/>
<CollectionViewSource x:Key="studentStatmentsViewSource" Source="{Binding StudentStatments, Source={StaticResource studentStatment}}"/>
</UserControl.Resources>
我希望在datagridview中显示su.Name,b.TypeOfBranch,su.Code,l.Name,sc.NumberOfStudent,但不会显示所有数据
答案 0 :(得分:0)
通过设置ItemsSource = {Binding},将其绑定到DataGrid.DataContext。当您在代码中设置值时,此绑定仍然处于活动状态-因此ItemsSource始终指向DataContext,我认为它为空。
您有两个选择: 从xaml中的DataGrid中删除ItemsSource绑定 要么 在后面的代码中设置DataContex而不是ItemsSource。