我有一个问题希望有人能帮助我。我的问题涉及 Visual Studio 2008 中的 winforms 和 datagridview。我想将我的 datagridview 绑定到业务对象集合而不是数据集。我想在 datagridview 中有组合框,它从业务对象中的属性之一获取其值。这可能吗?有人可以提供示例代码或提供描述如何执行此操作的网页。任何帮助,将不胜感激。
谢谢,格雷格
我有一个问题希望有人能帮助我。我的问题涉及 Visual Studio 2008 中的 winforms 和 datagridview。我想将我的 datagridview 绑定到业务对象集合而不是数据集。我想在 datagridview 中有组合框,它从业务对象中的属性之一获取其值。这可能吗?有人可以提供示例代码或提供描述如何执行此操作的网页。任何帮助,将不胜感激。
谢谢,格雷格
这是一个简单的数据类:
Public Class MyData
Private _ID As Integer
Private _ItemValue As String
Public Sub New(ByVal id As Integer, ByVal itemValue As String)
_ID = id
_ItemValue = itemValue
End Sub
ReadOnly Property ID() As Integer
Get
Return _ID
End Get
End Property
Public Property ItemValue() As String
Get
Return _ItemValue
End Get
Set(ByVal value As String)
_ItemValue = value
End Set
End Property
End Class
创建一个窗体并在其上放置一个 DataGridView 控件,添加以下代码:
Private myList As New List(Of String)
Private myItems As New List(Of MyData)
Protected Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
myList.Add("First Item")
myList.Add("Last Item")
myItems.Add(New MyData(1, "Last Item"))
myItems.Add(New MyData(2, "First Item"))
DataGridView1.AutoGenerateColumns = False
DataGridView1.Columns.Add(New DataGridViewTextBoxColumn() With _
{.HeaderText = "ID", _
.DataPropertyName = "ID"})
DataGridView1.Columns.Add(New DataGridViewComboBoxColumn() With _
{.HeaderText = "ItemValue", _
.DataSource = myList, _
.DataPropertyName = "ItemValue"})
DataGridView1.DataSource = myItems
End Sub
由于您想要在网格中使用组合框,因此您必须设置AutoGenerateColumns
为 false 并自己创建它们,通过属性将每一列映射到类中的DataPropertyName
属性。DataSource
对于组合框,您可以为下拉项目列表设置自己的。