IEnumerableリストがあり、実行時にこのリストによってデータグリッドビューが供給されています。このリストで DataGridviewのカラムの値の型をCの文字列から文字列に変換する
i.e. datagridviewBindingSource.DataSource = myList;
datagridview.DataSource = datagridviewBindingSource;
は、すべての列は、型「string」が、2つの列
「ステータス」と
「エリア」タイプ「シャアの値が含まれていです。
ステータス値= { 'O'、 'C'}(開閉)を有することができ、エリア インプロセス= { 'I' は、 'F'、 'R'}(値を持つことができ代わりに、Oの
オープン
閉じる代わりにC
の:ファイナル、さて、実行時に、私が表示したい}受け取ります
は、インプロセスの代わりに、I
のように...
私はこれをやっている:
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
if (c.HeaderText == "Status")
{
MessageBox.Show(c.ValueType.ToString());
c.ValueType = typeof(string);
}
}
foreach (DataGridViewRow r in dataGridView1.Rows)
{
foreach (DataGridViewCell c in r.Cells)
{
if (c.Value == null)
{
c.Value = "";
}
if (c.Value.GetType() == typeof(char))
{
//c.ValueType = typeof(string);
if (c.Value.ToString() == "O")
{
c.Value = "Open";
}
}
}
}
プログラムがコンパイルされますが、実行時に画像に示すように、例外がスローされます。
何か助けていただければ幸いです。
私はDapperを使用してデータベースを照会しています。クラス "Area"と "Status"の列は、データベースのようにcharとして定義されています。アプリがクライアントマシンに配布されている間にそのデータ型を変更することは、私の選択肢ではありません。私はちょうど "フロントエンド"ロジックでそれを処理したいです。
どの方法で 'foreach'ループが含まれていますか? –
このコードを含むメソッド( 'GetData()')は、データベースからデータを取得し、それをフィルタリングするために使用され、コンストラクタから呼び出されます。 –
forループを入力する前に、 'dataGridView1'にデータ(たとえば" O ")があることをどのように保証しますか? –