繁体   English   中英

如何从数据绑定中获取数据源的值?

[英]How can I get a data source's value from a data binding?

我有一个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。

我走在正确的轨道上,只有几个步骤。 这就是我需要的:

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM