misc.log

日常茶飯事とお仕事と

DataGridViewにList(Of Integer)をバインドしようとした

ちょっとしたテストプログラムをVisual Studio 2005のVBで作成。Integer値が複数えられる処理の結果をDataGridViewに軽く表示、と思い、List(Of Integer)で定義したリストをバインドするも、表示されない。

Dim dataList As New List(Of Integer)
             :
dataGrid.DAtaSource = dataList

こんな感じ。何も表示されない。

デバッグしてみると、Listには値が入っており、また、GridView側のDataSourceプロパティを見ても値は出ている。もしや?と思い、List(Of String)に変えて、値をListに設定する時に.ToStringで文字列化して突っ込んでみたところ、各項目のLength値だけが一覧表示された。そうじゃなくってぇ!

どうやら、データバインドでデータソースを放り込んだ場合、デフォルトプロパティ?の項目が表示対象になるようで。これってどうしようもないのかなぁ?ちなみにString型にはプロパティはLengthかCharsしかありません。


なんかこれくらい簡単な方法で無いのかなぁ...と調べてみたら、こうだよ。

How to bind a string list to a datagrid?
http://stackoverflow.com/questions/479329/how-to-bind-a-string-list-to-a-datagrid/479419

それ用の簡単なクラスを作れ、と。まぁそりゃそうか。