私は比較的 WPF/LINQ2Entities に慣れていません。私はなんとか進歩を遂げましたが、私が研究してきた1つの問題に行き詰まっています:
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 は、グリッドの下部にレコードを追加するための新しい行を表示していません。
この方法で DataGrid にデータを入力すると、LINQ クエリと関係があると思います。
QADBEntitiesViewSource = CType(Me.FindResource("QADBEntitiesViewSource"), CollectionViewSource)
QADBEntitiesViewSource.Source = context.SalesOrderListSQ.ToList()
....新しい行を含むすべてが機能しています。どんな助けや指針も大歓迎です。繰り返しますが、私はこれにかなり慣れていないため、設計全体に問題がある可能性があることに気付きました. ありがとう。