WinForm中ListBox數據綁定問題

WinForm中ListBox數據綁定問題

     這兩天遇到ListBox數據綁定並顯示的問題,以前以爲可以根ASP.NET中的用法差不多,即
ListBox listBox;
          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正確顯示出來,並且利用listBox.SelectedValue可以得到選定項的對應的id,  但是當我用
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() );
     }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章