【问题标题】:How do I specify what the column type a DataGridView chooses to use when using DataTable as its DataSource当使用 DataTable 作为其 DataSource 时,如何指定 DataGridView 选择使用的列类型
【发布时间】:2010-12-17 02:14:56
【问题描述】:

我的DataGridView 中有一个列,它是一个自定义类型,用于显示MyObjectType 的值。我的DataTable 将列创建为MyObjectType,但DataGridView 创建了一个DataGridViewTextBox 列并用MyObjectType.ToString() 填充它;这不是我想要的行为。我需要在单个列中同时显示 MyObjectType 值的图像和文本值;类似于使用详细信息视图时资源管理器中的名称列,因此我不能像默认行为那样将数据硬塞到单个列中。

我可以强制将数据加载到预先存在的列中吗?或者是否可以指定应该创建一个MyObjectTypeColumn 来显示MyObjectType 数据?

【问题讨论】:

  • 用您作为评论添加到我的答案(我现在已经删除)的信息来更新您的问题是值得的。

标签: c# winforms datagridview datatable


【解决方案1】:

【讨论】:

  • 我已经创建了它,但是当我为源设置数据表时,它会为 MyObjectType 创建一个文本列,并且只显示其 ToString 值而不是创建 MyObjectTypeColumn。
【解决方案2】:

AutogenerateColumns 属性设置为false 允许我使用具有我定义的类型的列。我是瞎了眼,还是该属性未在设计器网格中公开。

【讨论】:

  • 这不是我可以告诉 DataGridView 的属性的一部分。然而,并不是所有的属性都暴露出来。
【解决方案3】:

如果您具有约束力,您必须设置您的 DisplayMember 和 ValueMember,我相信。我在绑定到 ComboBox 时遇到了类似的问题,而且我也得到了 String[] 数组。

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多