|
分類:[C#]
■No8252に返信(Kさんの記事)
こんにちは。
失礼しました。少々勘違いしていたようです。 (SortCompareイベントが使えないなら、DataViewのSortを使えばいいじゃない? と思ってました)
えーと、では改めて。 要するに数字が文字列としてテーブルに登録されているので、それを数値にして やればいいわけですよね。 そこで、読み込んだ後のテーブルに列を追加して、その列を文字列として認識さ れている列を数値に変換したものにしてやればいいのかなと。
とりあえず作ってみたのがコチラ。
DataSet ds = new DataSet(); ds.ReadXml("test.xml"); ds.Tables["setting"].Columns.Add("test", typeof(Int32)); ds.Tables["setting"].Columns["test"].Expression = "CONVERT(value, 'System.Int32')"; dataGridView1.DataSource = ds.Tables[0]; dataGridView1.Columns["value"].Visible = false;
value列に数字が入っていて、文字列として認識されているので、test列を追加 してtest列のExpressionプロパティを設定することで、test列はvalue列を数値 化した内容が入ります。
ちなみにそのままDataSourceとして設定してしまうとvalue列も表示されてしま うので小細工をして表示させないようにしています。 (オススメはAutoGenerateColumnsプロパティをFalseにして、自分で列設定をし てしまうことですが)
こんな感じでどうでしょうか。
|