1

私は、DataGridとDataGridtextBoxColumnなどから派生したクラスを使用するWinFormsベースのソフトウェアの古い部分に取り組んでいます。チェックボックス列を追加する必要があります、簡単ですよね?DataGridBoolColumnから派生した他のクラスと同様のクラスを作成するだけです。うーん、このコントロールを使用するにはどうすればよいですか。私は自分でこれを理解することを本当に望んでいましたが、長い間さまざまなテクニックを「テスト」した後、私はそれ以上のことはしません。問題は次のとおりです。

a)列にフォーカス/編集していない場合、チェックボックスは灰色でチェックされています(nullをfalseに、TrueValueをtrueに、FalseValueをfalseに設定しました。

b)フィールドを編集するときは、列をオンまたはオフにすることができますが、Commitメソッドをオーバーライドしてから、GetColumnValueAtRow(source、rowNum)を使用して値を取得すると、常にfalseになります。

c)最後に、編集後にチェックボックスの列を離れると、何をしたかに関係なく、灰色に戻り、チェックされます。

それはおそらくデータバインディングの問題ですか?ないようです。これは、WinFormsの経験が不足していることと、古くて直感的ではないMSAPIを教えてくれることからです。

私はこの分野のベストプラクティスについて完全に失っているので、誰かが私を正しい方向に向けるのに関連する経験を持っていますか?

4

1 に答える 1

0

うわー..それは実際には非常に簡単でした。必要に応じて AllowNulls = false と言うことができますが、DefaultValue が String.Empty に設定されている場合は、常にデフォルトで "null" の位置になります (少なくともいつ描画されるかという点で)。

重要なことは次のとおりです。 col.DataType = typeof(bool); col.DefaultValue = false;

于 2012-08-29T11:35:35.073 に答える