查找编辑绑定

时间:2016-12-29 08:31:18

标签: entity-framework devexpress

我有一个使用Entity Framework Code First编写的模型,名为 Project

在我的用户界面中,有一个名为 ProjectEdit 的页面,如下图所示。如下图所示,openCustomerBOMs

enter image description here

我尝试将Lookup EditCustomer加载到BOMs,但它无效。以下是我的代码。

Lookup Edit

以下是我的LookUpEdit属性。

enter image description here

2 个答案:

答案 0 :(得分:0)

通常,LookUpEdit对象的数据绑定的实现方式与TextEdit对象的实现方式不同。虽然在TextEdits的情况下你只需要将变量值赋给EditValue属性(我想你的TextEdits绑定工作正常,不是吗?),使用LookUp Edit你应该为ValueMember和DisplayMember属性分配变量对象。这就是我们通常使用LookUpEdit对象显示数据行的原因,其中ValueMember是行的标识字段,DisplayMember是您希望显示其值的行的字段。

在你的情况下,你应该更清楚你希望在你的lookupedits中显示什么。每个Project实例都有一个Customer属性和许多BOM表,对吧?因此,CustomerLookUpEdit将根据选择进行编辑的Project对象显示一条记录和BOMsLookUpEdit值列表,对吗?我想您的客户和BOM类都有自己的某种ID属性和描述属性。在这种情况下,您应该将这些值绑定到LookUpEdits。例如。在初始化函数代码中添加这些行

CustomerLookUpEdit.Properties.DataSource = entity.Customer;
CustomerLookUpEdit.Properties.ValueMember = "someCustomerIDpropertyName" ;
CustomerLookUpEdit.Properties.DisplayMember = "someCustomerDescriptionpropertyName";

BOMsLookUpEdit.Properties.DataSource = entity.BOMs;
BOMsLookUpEdit.Properties.ValueMember = "someBOMIDpropertyName" ;
BOMsLookUpEdit.Properties.DisplayMember = "someBOMDescriptionpropertyName" ;

您可以在此主题https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsLookUpEdittopic

中阅读更多内容

答案 1 :(得分:0)

在将实体添加到列表时,如果是DBContext或DBSet,则必须照顾我们的DataSource,每个对象在编译器中都有影响,这就是您的情况,在这种情况下,您必须指定DataSource像DBSet并获得实体

Add<TEntity>(TEntity entity)

省略的type参数是可能的,因为编译器会推断出来。