说明:我要实现,datagird中含有ComboBox的功能,同时ComboBox绑定数据表中内容。
现象:焦点离开cell的时候,ComboBox中选择的text没有赋值给cell,并显示。我先用DataSource,把表绑定到ComboBox
然后,在把ComboBox的text用DataBindings绑定到datagird这样的做法,会不会冲突,就是Text绑定不到datagird上了============把表绑定到ComboBox
if ( _ds.Tables.Count > 0 )
_temp.DataSource = _ds.Tables[0] ; _temp.DisplayMember = "Name" ;
_temp.ValueMember = "valueId" ;
==========================
=============在把ComboBox的text用DataBindings绑定到datagird
cmb.Name = "cmb"+inDGTextBoxColumn.MappingName;
cmb.DropDownStyle = ComboBoxStyle.DropDown;
if ( null != inItem )
cmb.Items.AddRange( inItem );
cmb.Dock = DockStyle.Fill;
DataTable _dt = this.FDs.Tables[0] ;
Binding _bind = new Binding( "Text" , _dt , inDGTextBoxColumn.MappingName ) ;
cmb.DataBindings.Add( _bind );
cmb.KeyDown += new KeyEventHandler( this.cComboBox_KeyDown );
inDGTextBoxColumn.TextBox.Controls.Clear();
inDGTextBoxColumn.TextBox.Controls.Add( cmb );
inDGTextBoxColumn.TextBox.Tag = "1";
=====================
现象:焦点离开cell的时候,ComboBox中选择的text没有赋值给cell,并显示。我先用DataSource,把表绑定到ComboBox
然后,在把ComboBox的text用DataBindings绑定到datagird这样的做法,会不会冲突,就是Text绑定不到datagird上了============把表绑定到ComboBox
if ( _ds.Tables.Count > 0 )
_temp.DataSource = _ds.Tables[0] ; _temp.DisplayMember = "Name" ;
_temp.ValueMember = "valueId" ;
==========================
=============在把ComboBox的text用DataBindings绑定到datagird
cmb.Name = "cmb"+inDGTextBoxColumn.MappingName;
cmb.DropDownStyle = ComboBoxStyle.DropDown;
if ( null != inItem )
cmb.Items.AddRange( inItem );
cmb.Dock = DockStyle.Fill;
DataTable _dt = this.FDs.Tables[0] ;
Binding _bind = new Binding( "Text" , _dt , inDGTextBoxColumn.MappingName ) ;
cmb.DataBindings.Add( _bind );
cmb.KeyDown += new KeyEventHandler( this.cComboBox_KeyDown );
inDGTextBoxColumn.TextBox.Controls.Clear();
inDGTextBoxColumn.TextBox.Controls.Add( cmb );
inDGTextBoxColumn.TextBox.Tag = "1";
=====================
combobox.DataSource = dataset2.Tables["ListTable"];
combobox.DisplayMember = "ListName";
combobox.ValueMember = "ListID";combobox.DataBindings.Add("SelectedValue", dataset1, "Table1.ListID");
combobox.DataBindings.Add("要绑定控件的属性如下拉框的SelectedValue\Text", 数据源如dataset1, "导航路径如Table1.ListID");但是,DataBindings只能绑定一个字段,而绑定多个字段时典型的如列表控件Combobox、ListBox控件,需要键值对,这时就需要指定DataSource(实现IList接口就行),然后指定ValueMember、DisplayMember 。所以,如果是下拉列表,你只想绑定一个字段,用DataBindings可以,想绑定两个字段用combobox.DataSource = 数据源;
combobox.DisplayMember = 对应显示字段名;
combobox.ValueMember = 对应存储字段名;不要同时用
combobox.DisplayMember = 对应显示字段名;
combobox.ValueMember = 对应存储字段名;还要选中的信息,是吗?
string txt = combobox.Text;
SelectedIndex、SelectedItem表示选中了哪项目,也可以设置combobox.SelectedIndex = 0 或直接设置 combobox.SelectedValue = "一个已存在的值";或 combobox.Text = "一个已存在的文本";如果是绑定的,一定要设置的是一个在绑定在已存在的项。