現在C++のソースをC#に置き換える作業をしております。
その中で、CSVから読み取ったデータを一旦データテーブルに入れて、データバインディングにてデータグリッドビューに値を表示するようにしたいと思っています。
環境は下記です。
OS:Windows10
VisualStudioのバージョン:Community 2019 Ver 16.9.1
プロジェクトの種類:WindowsForms
フレームワークの種類:.NET Framework 4.8
その中で、参考としたC++Builder6を使ったC++のデータグリッドビューの中に1列にCSVの複数列のデータをカンマ区切りで表示されていました。
C++
1// データグリッドビューのDataSource 2TDataSource *ds_rireki; 3 4void __fastcall TFrireki::init(TDrireki *po) 5{ 6 rireki = po; 7 ds_rireki->DataSet = rireki->tb_rireki; 8}
C#でも同様のことをしようと思ったのですが、C#の方では複数列入れることが出来ておらず、行き詰ってしまっております。
C#
1public void init(Rireki po) 2{ 3 dataGridView1.AutoGenerateColumns = false; 4 5 _rireki = po; 6 7 dataGridView1.DataSource = _rireki.dt_rireki; 8 dataGridView1.Columns[0].DataPropertyName = "first"; 9 dataGridView1.Columns[1].DataPropertyName = "secondtoseven";//←ここの列に複数列分のデータを反映させたいです。 10}
また、C#のCSVデータに関しては、CSV読み込み→データテーブル変数(仮にdt変数)→データグリッドビューにデータバインディングと言うような流れになっているため、強引にデータグリッドビューに書き込んだとしても、csvに書き込むのがdt変数にしないといけないので、結果CSVの中身が何も変わっていないと言う状況になっています。
一応、最初の1列目はCSVの最初の1列分だけでよいのですが、2列目を6行分のデータを結合して入れたいと思いましたが、データグリッドビューのDataPropertyNameに複数列入れられないかテストしてみましたが、1列分しかやはり入れられないようで、手詰まりになっています。
大きく躓いている点として2点
・C#のデータグリッドビューの1列の中に、CSVから読み取った複数列のデータを結合して表示することは出来ないか?
・仮に、上記が出来た場合に、データグリッドビュー内の値を変えた際に、dt変数の中身を変える必要があり、どのようにするのが良いでしょうか。
ちょっとしたことでもコメント頂けましたら、幸いです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー