我有一个 DevExpress LookupEdit(基本上是一个下拉菜单)。在某些情况下,LookupEdit 绑定到的 DataTable 可以从数据库中加载一个未出现在 LookupEdit 可以显示的值列表中的值。在这种情况下,LookupEdit 的 EditValue 属性在从其数据绑定中读取时设置为 DBNull,但 DataTable 中的值被保留。
我想要一种使用控件的 DataBindings 属性从 DataTable 获取值的方法,而不是直接引用它。也就是说,我想通过MyLookupEdit.DataBindings[0].SomethingSomething
而不是通过引用它MyDataTable[MyLookupEditColumn]
。这样我就可以在一个事件处理程序中得到它(在那里我被赋予了调用 LookupEdit)并将该事件处理程序重新用于不同的 LookupEdits(它绑定到我的 DataTable 中的不同列)。
我想做这样的事情:
Binding bind = (sender as LookupEdit).DataBindings[0];
DataTable table = bind.DataSource as DataTable;
object data = table[binding.DataMemberInfo.BindingMember];
...但 BindingMember 是一个字符串,我需要一个 DataColumn。