2011-07-11 11 views
4

私はdatagridviewにデータのリストを持っています。たとえば、1つの列の名前が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に持っていますが、質問に表示されるようなものですが、クラスが追加されているかのように、クラスがハードコードされた状態ではなく、コンボボックスに表示されます。コンボボックスは自動的に更新され、問題はSergei Zによって与えられます。どのように変更するのですか?あなたが言うことを私に示すことができます – cutexxxpies

関連する問題