我試圖在DataGridView
中設置一些東西。看起來這應該是非常簡單的,但我遇到了麻煩。我想顯示三列:DataGridViewComboBoxColumn數據源?
- 代碼ID
- 代號爲
- 的組合框類型名的DisplayMember,TYPEID
的ValueMember我希望能夠從TypeName
所有可能的值進行選擇。這裏是我的困境:
如果我所有這一切都裝入一個DataTable
並設置DataGridView
爲DataSource
,我可以顯示該記錄的現有TypeName
,但組合框將不包括任何其他值。如果將DataGridViewComboBoxColumn
的DataSource
設置爲包含所有可能的TypeNames
的單獨DataTable
,則不會顯示現有值。
DataGridView
真的很煩人,所以無論是解決方案或可行的替代方案將不勝感激。
編輯︰看起來問題是由於我想有一個單獨的項目DisplayMember
和ValueMember
。下面的作品,如果我不擔心ID
爲ValueMember
設置:
var typeColumn = new DataGridViewComboBoxColumn
{
DataSource = typeList,
DisplayMember = "Type",
ValueMember = "Type",
DataPropertyName = "Type"
}
如果我這樣做,正確的類型選擇,但我不能改變在組合框中選擇:
var typeColumn = new DataGridViewComboBoxColumn
{
DataSource = typeList,
DisplayMember = "Type",
ValueMember = "TypeID",
DataPropertyName = "TypeID"
}
如果我用下面的我得到了FormatException
錯誤,因爲它正試圖以填充:
var typeColumn = new DataGridViewComboBoxColumn
{
DataSource = typeList,
DisplayMember = "Type",
ValueMember = "TypeID",
DataPropertyName = "Type"
}
EDI牛逼:typeList
是一個簡單的DataTable
由以下填充:
SELECT DISTINCT IT.InsuranceTypeID, IT.[Type]
FROM InsuranceType IT
WHERE IT.ClientID = @ClientID
ORDER BY [Type]
你設置的DGVCBC的DataPropertyName?此外,史詩般的配置文件圖標。 http://social.msdn.microsoft。com/forums/en-US/winformsdatacontrols/thread/952b1cc9-4ba7-4b16-abdf-be2cdfde6460/ –
是的...看到我的編輯。 –
你可以發表你如何設置'typeList'和你添加到列表中的結構嗎? 「DataPropertyName」和「ValueMember」的類型必須相同,這可能是您在上一個示例中遇到異常的原因。 – SwDevMan81