2016-12-29 4 views
0

私は、プロジェクトと呼ばれるEntity Framework Code Firstを使用して書かれたモデルを持っています。ルックアップ編集バインディング

私ののUIには、ProjectEditというページがあります(下の画像参照)。下の図に示すように、CustomerBOMsLookup Editです。

enter image description here

私はLookup EditCustomerBOMsをロードしようとしているが、それは働いていません。以下は私のコードです。以下は

//New 
if (entity == null) 
    { 
     Entity = new Project(); 
    } 

//Edit 
else 
    { 
     ProjectCodeTextEdit.DataBindings.Add("EditValue", entity, "ProjectCode"); 
     DescriptionTextEdit.DataBindings.Add("EditValue", entity, "Description"); 
     CustomerLookUpEdit.DataBindings.Add("EditValue", entity, "CustomerId"); 
     BOMsLookUpEdit.DataBindings.Add("EditValue", entity, "BOMs"); 
    } 

私LookUpEditのプロパティです。

enter image description here

答えて

0

一般LookUpEditオブジェクトのデータは、テキストエディットオブジェクトのと同じように実装されていませんバインディング。 TextEditsの場合、変数値をEditValueプロパティに割り当てる必要があります(TextEditsバインディングは正常に動作すると思いますが)か、LookUp Editを使用して、変数をValueMemberおよびオブジェクトのDisplayMemberプロパティに割り当てる必要があります。これは、通常、LookUpEditオブジェクトでデータ行を表示する理由です。ここで、ValueMemberは行の識別フィールドで、DisplayMemberは値を表示したい行のフィールドです。

あなたの場合は、ルックアップエディットに表示する内容を明確にする必要があります。各Projectインスタンスには1つのCustomerプロパティと多くのBOMがあります。 CustomerLookUpEditは1つのレコードを表示し、BOMsLookUpEditは編集用に選択されたProjectオブジェクトの値のリストを修正しますか?私はあなたの顧客クラスと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

+0

で詳細を読むことができます追加します。また、私は自分の質問に追加したLookUp Edit Propertiesを使ってみました。残念ながら、それは動作しませんでした。 – active92

+0

私はこの問題を解決しました。これはEntity Frameworkによるものだと思います。 'CustomerLookUpEdit.Properties.DataSource = entity.Customerでは;'ライン、 'entity.Customer'はentity.Customer.ToList()'と交換しなければならない ' – active92

+0

は実際にあなたが、私は、DataSourceオブジェクトがIListのかIListSourceを実装する必要があります右だと思うしています1つの顧客しかいない場合でも、それをリストとして追加する必要があります – jambonick

関連する問題