EF、WinForms.将导航属性绑定到DataGrid
本文关键字:绑定 DataGrid 属性 导航 WinForms EF | 更新日期: 2023-09-27 18:24:00
我正在学习本教程http://msdn.microsoft.com/pl-PL/data/jj682076.我想从上下文中加载特定类别,然后创建一个DataGrid并将其与该类别的Products属性绑定。我希望能够在DataGrid上添加、编辑和删除产品我一直在尝试这个代码:
context.Cetegories.Where(c => c.categoryID == _category.categoryID ).Select(c => c.Products).Load();
this.productsBindingSource.DataSource = _context.Categories.Local.ToBindingList();
其中productsBindingSource
是我的绑定源,DataGrid由设计器生成,绑定源为DataSource。我怎样才能做到这一点?我还考虑直接从上下文加载产品,并将它们绑定到DataGrid
_context.Products.Where(c => c.categoryID == _category.categoryID).Load();
但是,当我想直接从网格中为该类别添加新产品时,fk就有问题了,因为我不知道如何为新项目正确设置它。
我自己解决了这个问题。加载类别产品的早期代码是正确的。问题是,这段代码返回了一个Category
类型的对象,为了从中获得products
导航属性,我不得不使用另一个将Category
作为DataSource
的绑定源。之后,我可以使用productBingindSource
,其中DataSource
设置为新的bs,DataMember
属性设置为新bs的products
导航属性。这最终使我能够将特定类别的产品与DataGrid绑定。