WinForm中ListBox数据绑定问题
这两天遇到ListBox数据绑定并显示的问题,以前以为可以根ASP.NET中的用法差不多,即
ListBox listBox;
listBox.DataSource = ds;
listBox.DataTextField = " 要显示的字段名 " ;
listBox.DataValueField = " id " ;
listBox.DataBind();
listBox.DataSource = ds;
listBox.DataTextField = " 要显示的字段名 " ;
listBox.DataValueField = " id " ;
listBox.DataBind();
然后利用listBox.SelectedItem即可访问被选中的项的值,当然在WinForm中除了DataSource的属性还有,其他都没有了,WinForm就换成如下方式:
listBox.DataSource
=
ds.Tables[
0
];
listBox.DisplayMember = " carsnumber " ;
listBox.ValueMember = " id " ;
listBox.DisplayMember = " carsnumber " ;
listBox.ValueMember = " id " ;
这样便可在ListBox正确显示出来,并且利用listBox.SelectedValue可以得到选定项的对应的id, 但是当我用
listBox.SelectedItem打算得到相应的carsnumber值时,确显示System.Data.DataRowView,利用listBox.Item[]访问得到的结果是一样的。最后在网上搜搜看能不能找到答案,又在CSDN上搜了一下以前的帖子,最后找到了答案,
如果要循环访问绑定了的Text值和Value 值,可用如下方式:
listBox.SelectedItem打算得到相应的carsnumber值时,确显示System.Data.DataRowView,利用listBox.Item[]访问得到的结果是一样的。最后在网上搜搜看能不能找到答案,又在CSDN上搜了一下以前的帖子,最后找到了答案,
如果要循环访问绑定了的Text值和Value 值,可用如下方式:
for
(
int
i
=
0
; i
<
listBox.Items.Count; i
++
)
{
DataRowView drv = listBox.Items[i] as DataRowView;
if( drv != null )
{
MessageBox.Show( "Text:" + drv[listBox.DisplayMember].ToString() );
MessageBox.Show( "Value:" + drv[listBox.ValueMember].ToString() );
}
}
{
DataRowView drv = listBox.Items[i] as DataRowView;
if( drv != null )
{
MessageBox.Show( "Text:" + drv[listBox.DisplayMember].ToString() );
MessageBox.Show( "Value:" + drv[listBox.ValueMember].ToString() );
}
}