[英]How to display and update data in datagrid from multiple tables using EF and WPF?
[英]How to display data from related tables in a WPF datagrid
我只是用WPF / Datagrid / Linq找到了自己的方式,並且試圖找出如何在我的datagrid中顯示相關表中的數據。 例如,我有3個表:
並且我已經在數據庫表中建立了關系。 我已將這些表添加為C#數據集,該數據集創建了我的包裝器類。 我現在想將查詢綁定到幾個不同的WPF數據網格以獲得以下內容:
如何在XAML中指定DataContext或ItemsSource來顯示其他表中的信息? 我正在使用ObjectDataProvider
來提供設計時支持,如果有什么區別的話。
我已經看到了這個問題: 如何將WPF Datagrid綁定到一個聯接表 , 該聯接表將創建一個新類來顯示該表的信息。 這是我需要做的而不是指定綁定嗎?
編輯:
使用上面的第二種方法,我取得了一些成功。 我想知道我是否可以使用綁定來實現相同的目的,而無需執行顯式的select
查詢來創建新項目。 我有一個查詢,我映射到數據網格:
var q = from d in dbMan.dataset.Orders
select new {
id=d.id,
productName = d.ProductsRow.name,
custName = d.CustomersRow.name };
然后綁定到XAML中:
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="id" Binding="{Binding id}" />
<my:DataGridTextColumn Header="Product Name" Binding="{Binding productName}" />
<my:DataGridTextColumn Header="Customer Name" Binding="{Binding custName}" />
</my:DataGrid.Columns>
我通常只是在后面的代碼中將DataGrids ItemSource設置為DataTable。 如果要在多個DataTable之間更改ItemSource,則它比XAML容易。
myDataGrid.ItemsSource = myTable.DefaultView;
每當我想更改數據網格顯示的內容時,我只需更新ItemsSource。 這樣,我可以按照自己想要的任何方式來操作DataTable,然后通過DataGrid看到結果。
更新
要從兩個表中聯接數據,請運行Linq聯接以創建IEnumberable的表中所需字段。 然后將您的IEnumerable轉換回DataTable進行顯示。 我使用這種方法將IEnumerable轉換為DataTable。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.