我有一個GUI,允許用戶選擇要查看/編輯的報告。當用戶選擇報告時,它會在報告中顯示項目。該項目有很多屬性 - 其中大部分都具有正確的綁定。其中一個屬性是Owner,並且它綁定到ComboBoxColumn。將對象集合綁定到DataGridView中的ComboboxColumn
- 報告
- 項目
- 所有者
- 項目
我已經做了非常相似,這幾次的東西,有沒有問題,當我設置DataPropertyName
, DataSource
,ValueMember
和DisplayMember
。唯一不同的是,這一次,而不是Item
類型具有OwnderID
它實際上有一個Owner
對象的實例。
我看到了一個建議,在另一篇文章中給予列表中的必然自引用屬性,允許他們返回自己的設置ValueMember
不過的目的的項目來解決這個問題,當我綁定它是這樣的:
OwnerColumn.DataPropertyName = "Owner"
OwnerColumn.DataSource = ownersBindingSource1
OwnerColumn.ValueMember = "Self"
OwnerColumn.DisplayMember = "OwnerName"
我得到了很多類似的錯誤:
Unable to cast object of type 'System.String' to type 'Owner'.
和:
The following exception occurred in the DataGridView:
System.ArgumentException: DataGridViewComboBoxCell value is not valid.
To replace this default dialog please handle the DataError event.
我能夠通過這樣的結合也讓周圍的一些這些錯誤的:
OwnerColumn.DataPropertyName = "Owner"
OwnerColumn.DataSource = ownersBindingSource1
,並通過使Owner
顯示屏上的ToString
功能OwnerName
財產。儘管這看起來很詭異 - 但我認爲我誤解了一些基本的東西,因爲它仍然無法正常工作。任何幫助將非常感激。