.net DataGridView组合框

.net DataGridView组合框,.net,vb.net,winforms,datagridview,.net,Vb.net,Winforms,Datagridview,如何访问DataGridView中特定行中组合框的items集合 我正在填充组合,如下所示: Dim VATCombo As New DataGridViewComboBoxColumn With VATCombo .HeaderText = "VAT Rate" .Name = .HeaderText Dim VATCol As New JCVATRate

如何访问DataGridView中特定行中组合框的items集合

我正在填充组合,如下所示:

          Dim VATCombo As New DataGridViewComboBoxColumn
            With VATCombo
                .HeaderText = "VAT Rate"
                .Name = .HeaderText
                Dim VATCol As New JCVATRateCollection

                VATCol.LoadAll(EntitySpaces.Interfaces.esSqlAccessType.StoredProcedure)
                For Each Rate As JCVATRate In VATCol
                    .Items.Add(Rate.str.VATRate)
                Next
                .Sorted = True

                VATCol = Nothing

                .ToolTipText = "Select VAT Rate"
                .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
                .CellTemplate.Style.BackColor = Color.Honeydew
                .DisplayIndex = 8
                .AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

            End With
            .Columns.Add(VATCombo)
            VATCombo = Nothing
我希望能够为添加到网格中的每一行设置默认值,还希望能够根据其他业务逻辑更改组合中的值。我意识到我可以直接设置单元格值,但我希望避免将值硬编码到系统中,并依靠数据库进行填充


我确信它必须是直截了当的,但我却无法理解……

您是否可以使用行索引直接在单元格内强制转换控件以访问当前行?

您是否可以使用行索引直接在单元格内强制转换控件以访问当前行?

EditGridView中的基本组合框存在以下问题:所有行共享同一个组合框,因此您无法更改它

您需要创建从ComboBox继承的新类(ComboEditingControl)并实现IDataGridViewEditingControl:

(例如customdropdown.vb:)

最后,在表单的OnLoad代码中,通过编程将控件添加到网格:

Dim c As New ComboColumn
c.HeaderText = "Sheet"
c.DataPropertyName = "My Combo"
c.ToolTipText = "Select something from my combo"
MyDataGridView.Columns.Add(c)
要获取和设置,只需使用
ThisRow.Cells(ComboCol.Value)

第一个字段是泛型字段,另一个字段继承并具有所需的每个DataGridView的自定义代码


HTH

EditGridView中的基本组合框的问题是所有行共享同一个组合框,因此您无法更改它

您需要创建从ComboBox继承的新类(ComboEditingControl)并实现IDataGridViewEditingControl:

(例如customdropdown.vb:)

最后,在表单的OnLoad代码中,通过编程将控件添加到网格:

Dim c As New ComboColumn
c.HeaderText = "Sheet"
c.DataPropertyName = "My Combo"
c.ToolTipText = "Select something from my combo"
MyDataGridView.Columns.Add(c)
要获取和设置,只需使用
ThisRow.Cells(ComboCol.Value)

第一个字段是泛型字段,另一个字段继承并具有所需的每个DataGridView的自定义代码


HTH

因此,一旦使用标准组合将列添加到gridview中,您就不能访问items集合了吗?无论我尝试以何种方式引用它,我都会得到一个字符串,尽管我实际上添加了一个具有两个属性(ID和display value)的对象。您还可以如何处理主键?因此,一旦使用标准组合将列添加到gridview中,您就不能访问items集合了吗?无论我尝试以何种方式引用它,我都会得到一个字符串,尽管我实际上添加了一个具有两个属性(ID和display value)的对象。您还可以如何处理主键?
Dim c As New ComboColumn
c.HeaderText = "Sheet"
c.DataPropertyName = "My Combo"
c.ToolTipText = "Select something from my combo"
MyDataGridView.Columns.Add(c)