我在C#WinForms应用程序中有一个DataGridView,它在运行时是DataBound(通过Form_Load)到自定义对象。
在DataGridView的设计视图中,我没有设置列
当Form加载时,将根据DataBound所在的Custom对象中的数据自动创建列
我的问题是如何控制自动创建的列
例如,如果我想要其中一列是DataGridViewLinkColumn而不是自动创建的DataGridViewTextBoxColumn?
答案 0 :(得分:3)
默认列基于数据类型。 我没有选中,但是对于一个链接,您可以尝试将数据公开为真的,如果你想要一个特定的列的类型 - 通过代码添加列并将Uri
,但这可能是有希望的。DataGridView.AutoGenerateColumns
设置为false
。
安德鲁暗示;通常使用之类的反射生成列,并为每个(可浏览+公共+可读)属性获取一列。如果需要,在此基础上有一层抽象,但这对添加超链接列没有帮助。
答案 1 :(得分:1)
您可以在设计器中预先创建列。如果列的名称与列最终绑定的属性的名称匹配,则数据绑定将像以前一样为您处理DGV填充。