2011-09-28 151 views
0

我試圖從c#(winforms)列表框中的所有項目中獲取值。我有一個包含多個項目的組合框,這是從數據源填充,並且我在組合框中提交了一個選擇,我希望將這些值存儲在列表框中。從列表框項目獲取值

IQueryable clientes = getcompanies(); 
combo1.DataSource = companies; 
combo1.DisplayMember = "name"; 
combo1.ValueMember = "id"; 

private void combo1_SelectionChangeCommitted(object sender, EventArgs e) 
    { 
     listBox1.Items.Add(combo1.SelectedItem); 
     listBox1.DisplayMember = "name"; 
     listBox1.ValueMember = "id"; 
    } 
public IQueryable getcompanies() 
    { 
     var company= from c in context.companies 
         select new 
         { 
          c.id, 
          name= c.fname+" "+ c.lname 
         }; 
     return company; 
    } 

我有這個代碼,當我選擇和項目,從它被添加到列表框,只有DisplayMember屬性是可見的,只是因爲我想組合沒有問題。 問題是,我不知道如何從列表框中的所有項目獲取所有valuemember屬性。有任何想法嗎?

回答

2

如果你這樣做。

var items = ((List<string>)listBox1.Items); 

你生病需要儘管使用foreach循環,然後你就可以訪問propertie id作爲正常項目變更清單公司

的數據類型,那麼你應該能夠循環

+0

感謝喬納森,公司是一個IQueryable的數據類型和我得到一個轉換錯誤(ObjectCollection」到‘System.Linq.IQueryable’) –

+0

沒有更多的代碼,我不能幫助不大,basicly你有錯誤的類型,我說替換列表。儘管在deubg模式下的代碼,看看listBox1.Items是什麼,並將其轉換爲。 –

+0

我在問題中增加了更多細節。 Listbox.items是ObjectCollection數據類型。 –