を高く評価していることになるかと思っすることは、最も簡単なオプションです。例:
var images = new Dictionary<char, Image>()
{
{'#', Properties.Resources.Image1},
{'.', Properties.Resources.Image2},
{'$', Properties.Resources.Image3},
{'@', Properties.Resources.Image4},
};
var data = new List<string>() { "#.#", "#$#", "#@#", "###" };
var list = data.Select(x => new
{
A = images[x[0]],
B = images[x[1]],
C = images[x[2]]
}).ToList();
this.dataGridView1.DataSource = list;
上記のコードでは、文字と画像のマッピング用の辞書を作成しました。次に、文字の代わりにその画像を含むリストに入力データを整形します。結果リストをDataSource
としてDataGridView
に設定すると、文字の代わりにそれらのイメージが表示されます。
匿名オブジェクトを使用したくない何らかの理由で、あなたは、単に任意の数の列を持つダイナミックDataTable
を作成することができた場合: `DataGridView`を使用して
var images = new Dictionary<char, Image>()
{
{'#', Properties.Resources.Image1},
{'.', Properties.Resources.Image2},
{'$', Properties.Resources.Image3},
{'@', Properties.Resources.Image4},
};
char[][] data = new char[][]{
new char[] {'#','.','#'},
new char[] {'#','$','#'},
new char[] {'#','@','#'},
new char[] {'#','#','#'},
};
var dt = new DataTable();
for (int i = 0; i < data.Max(x => x.Count()); i++)
dt.Columns.Add(string.Format("C{0}", i), typeof(Image));
data.ToList().ForEach(a => dt.Rows.Add(a.Select(x=>images[x]).ToArray()));
this.dataGridView1.DataSource = dt;
は、最も簡単なオプションです。 。 –
[2次元配列に基づいてWPFグリッドを生成する方法]の可能な複製(http://stackoverflow.com/questions/276808/how-to-populate-a-wpf-grid-based-on-a- 2次元配列) – rmbq