我对 WPF/LINQ2Entities 比较陌生。我已经取得了进展,但我被困在一个我一直在研究的问题上:
1) 我有一个基于此 CollectionViewSource 填充的 WPF DataGrid。CollectionViewSource 的源是一个 LINQ 查询。
Private context As New QADBEntities
Dim QADBEntitiesViewSource As CollectionViewSource
Dim SalesOrderSerialNumber_Query = From salesOrders In context.tblSalesOrders
Join serialNumbers In context.tblSerialNumbers
On salesOrders.Sales_Order_ID Equals serialNumbers.Sales_Order_ID
Where salesOrders.Sales_Order_ID = 5
Select New With {salesOrders, serialNumbers}
QADBEntitiesViewSource = CType(Me.FindResource("QADBEntitiesViewSource"), CollectionViewSource)
QADBEntitiesViewSource.Source = SalesOrderSerialNumber_Query.ToList()
以下是 DataGrid 的 XAML 的摘录:
<DataGrid x:Name="TblSerialNumbersDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" CanUserAddRows="True"
ItemsSource="{Binding Source={StaticResource QADBEntitiesViewSource}}" Margin="293,44,10,16"
RowDetailsVisibilityMode="VisibleWhenSelected" Grid.ColumnSpan="2">
<DataGrid.Columns>
<DataGridTextColumn x:Name="Kit_Group_IDColumn" Binding="{Binding serialNumbers.Kit_Group_ID}" Header="Kit Group ID" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="NotesColumn" Binding="{Binding serialNumbers.Notes}" Header="Notes" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="Product_IDColumn" Binding="{Binding serialNumbers.Product_ID}" Header="Product ID" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="Production_Lead_IDColumn" Binding="{Binding serialNumbers.Production_Lead_ID}" Header="Production Lead ID" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="QA_Personnel_IDColumn" Binding="{Binding serialNumbers.QA_Personnel_ID}" Header="QA Personnel ID" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="Sales_Order_IDColumn" Binding="{Binding serialNumbers.Sales_Order_ID}" Header="Sales Order ID" Width="SizeToHeader"/>
....etc
</DataGrid.Columns>
</DataGrid>
2) 问题:填充 DataGrid 并对数据进行更改工作得很好。但是,DataGrid 没有在网格底部显示新行以添加其他记录。
我相信它与 LINQ 查询有关,因为当我以这种方式填充 DataGrid 时:
QADBEntitiesViewSource = CType(Me.FindResource("QADBEntitiesViewSource"), CollectionViewSource)
QADBEntitiesViewSource.Source = context.SalesOrderListSQ.ToList()
....一切,包括新行,都是功能性的。任何帮助或指示将不胜感激。再次,我对此很陌生,我意识到这可能是我整个设计的问题。谢谢。