簡體   English   中英

DataGridComboBoxCell - 無法以編程方式填充值

[英]DataGridComboBoxCell - Can't Fill Values Programmatically

我正在用 2 列填充 DataGridView,一個DataGridViewTextBoxColumn用於名稱標簽,一個DataGridViewComboBoxColumn作為下拉列表用於選擇 SQL 列名稱以映射到該名稱。

我要遍歷我的名字,並為每個名字創建一行。 每一行都應該顯示一個字段的名稱( String對象),在另一列中應該是一個組合框(值在List (Of String) )。 我不斷收到一個異常,說“值無效”:

For Each sourceColumn As String In sourceColumnList
    Dim item As New DataGridViewTextBoxCell
    Dim destcombo As New DataGridViewComboBoxCell
    item.Value = sourceColumn
    destcombo.Items.AddRange(sqlColumnSelectionList.ToArray())

    '    ERROR IS HERE, REFERRING TO INVALID COMBO BOX |
    '                                                 \|/
    list_Destination_SQLMap.Rows.Add(sourceColumn, destcombo)
Next

我已經用谷歌搜索過,但只能找到有關如何使用綁定而非未綁定數據源解決此問題的示例。 我知道我錯過了一些東西,這是我第一次使用DataGridView

添加DataGridViewComboBoxColumn您還需要將其DataSource屬性設置為有效源。 如果您從數據庫或List (Of T)獲取數據,則為DataTable - 您的List (Of String)將正常工作。

在創建並填充sqlColumnSelectionList之后添加以下代碼。 (不要忘記將變量名column2更改為您命名的任何名稱)

column2.DataSource = sqlColumnSelectionList

重要的是要記住,在初始化和一般使用方面, DataGridViewComboBox就像普通的ComboBox一樣工作。

完成后,在添加行時應更改此行:

list_Destination_SQLMap.Rows.Add(sourceColumn, destcombo)

成為:

list_Destination_SQLMap.Rows.Add(sourceColumn, "")

這會將新行添加到 DataGridView,其中 Text 列中的條目與字段名稱匹配(根據您的描述),第二列將為空白,允許用戶從下拉列表中選擇值。

如果您需要將第二列預選為一個值,請用該值替換空字符串。

DataGridViewComboBoxColumn 只需要填充一次,而不是每次向 DataGridView 添加新單元格時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM