2012-08-28 26 views
1

我正在使用基於WinForms的軟件,它使用DataGrid和類DataGridtextBoxColumn等派生類的舊件。 我需要添加一個複選框列,簡單的權利?只是創建一個類似於DataGridBoolColumn派生的其他類。嗯,但我該如何使用這個控件!? 我真的很希望爲自己弄清楚這一點,但經過很長時間「測試」不同的技術,我沒有進一步的真正。這些問題是:DataGrid中的DataGridBoolColumn(而不是DataGridView)..這應該如何工作

a)如果不集中/編輯欄,該複選框是灰色的,檢查(我已經設置允許空爲false,並TrueValue爲true,FalseValue假等

b)如果編輯字段我可以檢查或取消選中列,但是當覆蓋Commit方法,然後使用GetColumnValueAtRow(source,rowNum)檢索值時,它始終是false ..總是,無論是否選中。

C)離開後編輯複選框列最後的時候,又回到了被灰色和檢查,無論我做什麼

是它可能是一個數據綁定的問題?似乎不是。這僅僅是我缺乏WinForms體驗,以及我可以告訴一個陳舊而不是非常直觀的MS API。

有沒有人有相關的經驗指向我在正確的方向,因爲我完全喪失了這方面的最佳做法?

+0

爲什麼我有這樣的感覺,WinForms是一種很少知道真實自然的黑色藝術..? –

回答

0

哇..其實很簡單。你可以說所有你想要的AllowNulls = false,但是如果你的DefaultValue被設置爲String.Empty,那麼它總是默認爲「零」位置(就其至少繪製時間而言)。

關鍵的事情是: col.DataType = typeof(bool); col.DefaultValue = false;