2011-07-11 65 views
4

我有一個datagridview中的數據列表。例如,一列被命名爲Class(每行有不同的值,請參見下文),是否可以擁有一個組合框,其中包含組合框中所有可能的記錄類值? * 它應該有一個列表6A,6B,6C 如果稍後有更多的類被添加到數據庫(例6D),它們也應該在組合框中。 *如何更改代碼以檢索datagridview中的特定列?

datagridview的

Class    Name 

6A     Jane,14 May 1980;Mary,4 June 1980; 
6B     leen, 31 May 1980; Peter 6 Jan 1980; 
6C     Eillen, 19 Aug 1980; Yvwon, 28 Mar 1980; 
6D     Evan, 24 Dec 1980; Ivan, 20 Nov 1980; 

這裏的觀點是我找到的代碼,但我怎麼將其更改爲我想要什麼?

var input = Convert.ToString(datagridview1.CurrentRow.Cells[0].Value); 
var resultList = Regex.Matches(input, **@".*?,(.*?),.*?;")** 
    .Cast<Match>() 
    .Select(arg => arg.Groups[1].Value) 
    .ToList(); 



// bind to a combobox 
comboBox1.DataSource = resultList; 
+0

任何人都知道如何改變,我非常需要幫助! – cutexxxpies

+0

你可以檢查一下resultList變量,讓我們知道它是否得到正確的值? – NickHeidke

回答

2

如果這是一個Windows窗體應用程序,那麼你可以創建一個類,類似於

class Obj { 
    public string Class { get; set; } 
    public string Data { get; set; } 
} 

然後創建對象的列表:

var list = new List<Obj>(); 
list.Add(new Obj() { Class = "6A", Data = "Jane,14 May 1980;Mary,4 June 1980;" }); 
// continue adding to the list here 

然後

comboBox1.DataSource = list; 
comboBox1.DisplayMember = "Class"; 

最後把你的comboBox1.SelectedIndexChanged掛上一個事件,並抓住comboBox1.SelectedItem,將它投到Obj,你很好。

+0

但我沒有使用硬編碼,我有一個數據源,我將如何與您的代碼合併? – cutexxxpies

+0

@cutexxxpies:您將用您用來查詢的任何方法替代硬編碼列表元素的代碼,例如從數據源中查詢。你原來的問題並不清楚,這是問題所在。您可能需要在原始問題中清楚地確定2個問題。 – IAbstract

+0

@IAstract,基本上我有一個數據庫綁定到datagridview,就像我在問題中顯示的那樣,但是,我希望類在組合框中顯示,但不是以硬編碼方式顯示,就好像還有更多類添加,組合框會自動更新自己得到,那麼現在的問題是由謝爾蓋Z給出的代碼我將如何改變它,關於你你說什麼可以告訴我 – cutexxxpies

相關問題