我想要一种以我自己完全控制的自定义方式在datagridview中显示自定义类的方法。例如,如果我现在只是将List绑定到datagridview,则将创建每个公共属性的列。即使我使用DataGridViewTextBoxColumn的DataPropertyName属性,也会创建自定义类的每个附加属性的附加列。
我知道我可以自己填充datagridview,但即使是VB.NET初学者,我觉得这不是一个好的解决方案。是吗?
我想我记得有可能实现一些有助于精确指定类在datagridview控件中如何表示的接口。
有人能指出我最好,最有效的解决方案吗?
答案 0 :(得分:3)
DataGridView具有AutoGenerateColumns
属性,默认情况下为True
。将其设置为False
,并在DataGridView -> Columns
代码
答案 1 :(得分:3)
您可以使用Browsable
attribute。
如果将以下类的List绑定到DataGridView
Class Person
Public Property Name As String
Public Property Department As String
<System.ComponentModel.Browsable(False)>
Public Property SomethingInternal As String
End Class
只会创建Name
和Department
列。
快速举例:
Using f As New Form
Dim g = New DataGridView With {
.Dock = DockStyle.Fill,
.DataSource = { New Person With
{
.Name = "Foobar",
.Department = "BarFoo",
.SomethingInternal = "Don't show this"
}}}
f.Controls.Add(g)
f.ShowDialog()
End Using