我有一个DevExpress LookupEdit (基本上是一个下拉列表)。在某些情况下,DataTable LookupEdit绑定可以从数据库加载一个没有出现在LookupEdit可以显示的值列表中的值。在本例中,LookupEdit的EditValue属性在从其数据绑定中读取时被设置为DBNull,但DataTable中的值将保留下来。
我想要一种使用控件的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。
发布于 2013-09-11 19:49:54
我在正确的轨道上,只有几步之遥。这就是我需要的:
Binding bind = (sender as Control).DataBindings[0];
DataTable table = (bind.DataSource as DataSet).Tables[0];
string table_column_name = bind.BindingMemberInfo.BindingMember;
string column_name = table_column_name.Split(new char[] { '.' })[1];
DataColumn column = table.Columns[table.Columns.IndexOf(column_name)];
object data = table.Rows[0][column];https://stackoverflow.com/questions/18749446
复制相似问题