XML ファイルから辞書にフィールドを読み込むプログラムがあります。辞書の値から dataGridView に名前を付けて列を作成したいと思います。問題は、実行時までディクショナリ内の値がどのようなものになるのか、どのような順序になるのかがわからないことです。これをプログラムで行う方法と、どのタイプの列になるか (コンボボックス、テキストボックスなど) を指定する方法はありますか?
custXML=
doc.Descendants("DT100")
.ToDictionary(d => (int)d.Element("import_seq"),
d => (string)d.Element("display_name"));
custXML は、import_seq をキー、display_name を値とするディクショナリです。これが私がデータグリッドビューに追加しようとしたものです(固定64列があり、そのうちのいくつかは空かもしれません):
DataGridViewColumn[] foo = new DataGridViewColumn[64];
for (int i = 0; i < 63; i++)
foo[i] = new DataGridViewColumn();
foreach (KeyValuePair<int, string> item in custXML)
{
for (int i = 0; i < 63; i++)
foo[i].HeaderText = item.Value.ToString();
}
for (int i = 0; i < 63; i++)
dataGridView1.Columns.Add(foo[i]);
ただし、それを実行すると、列の名前はすべて「ソースコード」と表示されます