- - PR -
Winアプリ DataGrid の DataGridBoolColumn について
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-09 11:05
お世話になります。
現在VB.NetでWinアプリを製作中です。その中で使用しているDataGrid内でチェックボックスを使用しています。その際以下を参照しました。 http://www.atmarkit.co.jp/fdotnet/dotnettips/105dgchkbox/dgchkbox.html 上記のコラムでは『ここでの注意点は、チェック・ボックスを表示する列のデータ型は必ずbool型(Boolean型)にすることである。』と記載されていますが、Boolean型以外を使用する事は不可能なのでしょうか?元のデータがInteger型でその値が1であればチェック、0であればチェックを外すようにしたいのです。 Dim TblStyle As New DataGridTableStyle TblStyle.MappingName = "AAA" Dim chkFlg As New DataGridBoolColumn chkFlg.MappingName = "BBB" chkFlg.TrueValue = 1 ← 『1』でチェック chkFlg.HeaderText = "ヘッダーテキスト" chkFlg.Width = 50 TblStyle.GridColumnStyles.Add(chkFlg) と、やってみましたがダメでした。MappingName を指定しないとその列は表示されないようですし・・・。どなたか良いお知恵をお持ちでしたらご教授いただけますようお願いします。 | ||||||||||||
|
投稿日時: 2004-08-09 14:22
情報が足りません。
以下のページをから変更している点は何なのか? 以下のページの内容は理解されているのでしょうか? http://www.atmarkit.co.jp/fdotnet/dotnettips/105dgchkbox/dgchkbox.html >MappingName を指定しないとその列は表示されないようですし・・・。 理解されていたらこんなコメントは出ないはずですが・・・ 質問部分はテーブル・カラムの構成がわかりません。 FalseValue・AllowNull・NullValue を設定していないのはなぜですか? _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 | ||||||||||||
|
投稿日時: 2004-08-09 18:42
えムナウさん、ご返答ありがとうございます。返事が遅くなってすいません。また、情報不足をお詫びします。
>以下のページの内容は理解されているのでしょうか? DataGridBoolColumnについては分かりません。 >理解されていたらこんなコメントは出ないはずですが・・・ 理解しきれていません。元のデータの型がBooleanであればいけそうだと思ったのですが・。 >FalseValue・AllowNull・NullValue を設定していないのはなぜですか? なお、チェック・ボックスのデータを常にON(true)またはOFF(false)のいずれかの値に設定する(つまり、nullが設定されないようにする)には、DataGridBoolColumnオブジェクトのAllowNullプロパティにfalseを設定する。と、いう記述が参照したページにありまして、必須とは思わなかったからです。FalseValue・NullValue についても同様です。 DataGridTextBoxColumnは実際に以下のコードを実装していますので出来ているつもりです。 Dim txtAAA As New DataGridTextBoxColumn txtAAA.MappingName = "mapping_name" txtAAA.HeaderText = "ヘッダー" txtAAA.Width = 120 TblStyle.GridColumnStyles.Add(txtAAA) 以上が現状です。すいませんが、もう少しアドバイスをお願いします。 | ||||||||||||
|
投稿日時: 2004-08-09 21:00
DataGridBoolColumn についてもう少し理解してもらおうと思って、
質問しましたが、とりあえず答えを書いておきます。 DataGridBoolColumn は、その名の通り bool を対象としています。 bool 型の true/false 以外は null と同じ扱いをします。 _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 | ||||||||||||
|
投稿日時: 2004-08-10 08:11
おはようございます。
ご返答ありがとうございます。 bool 型の true/false 以外は nullということはここで記述しているような使用方法は無理ということですね。元のデータの抽出時に工夫するか、チェックボックスは使用しないようにするか考えます。どうもありがとうございました。 | ||||||||||||
|
投稿日時: 2004-08-10 08:45
型コンバータを作ってかませばよいのでは?
class BoolConvert { public static int ToInt(boolean b) { return (b == true ? 1 : 0); } public static boolean ToBool(int i) { if (i == 0 || i == 1) { return (i == 1); } else { throw new Exception(); } } > chkFlg.TrueValue = 1 当然、この「1」は、何かの変数でしょうから、こういうのもあり。 →chkFlg.TrueValue = (valiable == 1); [ メッセージ編集済み 編集者: Jitta 編集日時 2004-08-10 08:47 ] | ||||||||||||
|
投稿日時: 2004-08-10 09:43
Jittaさん、ご投稿ありがとうございます。
大変良いアイデアだと思いますが、少し分からないことがあります。 型コンバータをどこにかませばよいのでしょうか?DataGridのデータとDataGridBoolColumnとはMappingNameプロパティで関連付けされており、このプロパティには関連付けるフィールド名を指定する事になっていると思うのですが、例えば元のSQL文で抽出されるフィールド名を指定する訳ですね。とすると、どうかませば良いのか分からないのですが、もう少しアドバイスをお願いします。 | ||||||||||||
|
投稿日時: 2004-08-10 11:43
うぅ…失礼しました。 >とっと さん まず、これ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformsdatagridboolcolumnclasstopic.asp
で、えムナウさんのいわれるとおり、「FalseValue」「AllowValue」「NullValue」について調べる・・・
これらのことより、以下のことがわかる、と。
|
1|2|3
次のページへ»