编辑 1
我相信我的问题源于以下几点。填充下拉部分的函数将显示成员设置为 CountyName。然后,当我按照建议尝试设置 SelectedText 或 EditValue 时,该函数仅返回它尝试与下拉列表 DisplayMember 中的内容匹配的 CountyID。我需要将其与 ValueMember 列表中的内容相匹配。
使用以下方法我让它工作,但它是一个 HACK,我非常感谢找到一个真正的解决方案。
lkuResidenceCounty.ItemIndex = Convert.ToInt32(row["ResidencyCountyID"].ToString());
原帖
我在成员表单上有一个查找框(DevExpress),我使用此代码从数据库中填写可能的值 -->
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 按预期显示。
但是,当我尝试使用以下内容为此字段加载现有成员的值时,这是从数据集中获取一行的函数的一部分 -->
lkuResidenceCounty.Properties.ValueMember = row["ResidencyCountyID"].ToString();
我得到一个空盒子。我已单步执行代码,并且正在为会员返回正确的 ID。
不幸的是,填充下拉选项的存储过程从维护表中提取,其中包含“CountyName”和“CountyID”列。所以这是正确的。不幸的是,加载特定人员当前县的存储过程从 Person Table 中提取,其中有一个名为“ResidencyCountyID”的列。之所以如此命名,是因为还有一个“ResponsibilityCountyID”列。
我需要一种让它们共存的方法,有什么解决方案吗?
谢谢!