編集1
私の問題は次のことに起因すると思います。ドロップダウン部分を埋める関数は、表示メンバーをCountyNameに設定します。次に、提案されているように、SelectedTextまたはEditValueを設定しようとすると、その関数は、DropDownリストDisplayMember内の何かと一致させようとするCountyIDのみを返します。ValueMemberリストの何かと一致させるために必要です。
以下を使用して動作させましたが、これはハックであり、実際の解決策を見つけていただければ幸いです。
lkuResidenceCounty.ItemIndex = Convert.ToInt32(row["ResidencyCountyID"].ToString());
元の投稿
メンバーフォームにルックアップボックス(DevExpress)があり、DBからこのコードで可能な値を入力します->
lkuResidenceCounty.Properties.DataSource = ConnectBLL.BLL.Person.CountyList();
lkuResidenceCounty.Properties.PopulateColumns();
lkuResidenceCounty.Properties.DisplayMember = "CountyName";
lkuResidenceCounty.Properties.ValueMember = "CountyID";
lkuResidenceCounty.Properties.Columns[0].Visible = false;
lkuResidenceCounty.Properties.Columns[2].Visible = false;
lkuResidenceCounty.Properties.Columns[3].Visible = false;
CountyNameが期待どおりに表示されるため、これは問題なく機能します。
ただし、以下を使用してこのフィールドの既存のメンバーの値をロードしようとすると、これはDataSetから行を取得する関数の一部です->
lkuResidenceCounty.Properties.ValueMember = row["ResidencyCountyID"].ToString();
空白のボックスが表示されます。コードをステップスルーしましたが、メンバーに正しいIDが返されています。
残念ながら、ドロップダウンオプションを入力するためのストアドプロシージャは、「CountyName」列と「CountyID」列を持つメンテナンステーブルから取得されます。ですから、それは正しいです。残念ながら、特定の個人の現在の郡をロードするストアドプロシージャは、「ResidencyCountyID」という列がある個人テーブルから取得します。「ResponsibilityCountyID」列もあるため、この名前が付けられています。
私はそれらの両方が共存する方法が必要です、何か解決策はありますか?
ありがとう!