【发布时间】:2016-11-04 14:05:31
【问题描述】:
我想将列表(ProductList)绑定到DataGridView,但是一列是集合(Categories),但是DataGridView显示“(集合)”而不是列表的内容。我无法重写或更改此 ProductList 类。如何绑定此类别列表列?
这里是绑定:
dataGridView1.AutoGenerateColumns = false;
dataGridView1.ColumnCount = model.ColumnsNames.Length;
for (int i = 0; i < model.ColumnsNames.Length; i++)
{
string columnName = model.ColumnsNames[i];
dataGridView1.Columns[i].Name = columnName;
dataGridView1.Columns[i].DataPropertyName = columnName;
}
dataGridView1.DataSource = model.Products;
这里是ProductModel,grid的数据源是List<Product>:
public class Product
{
//...
/// <summary>
/// List of product categories names (string).
/// In write-mode need to pass a array of categories IDs (integer)
/// (uses wp_set_object_terms())
/// </summary>
public List<object> categories { get; set; }
// ...
}
我不想使用子网格,我只想将属性显示为 TextBoxColumn 中的字符串,如下所示:CollectionElement1、CollectionElement2 等。
这不是我的课,实际上只是一个参考。所以我不能在任何地方改变它。
【问题讨论】:
-
您的期望是什么?您想如何显示 Collection 或 List 类型的属性?如果您考虑类似
Sub-Grid或Grid控件具有并用于在网格中显示关系的功能,不,DataGridView没有这样的功能。您可以购买支持此类功能的第 3 方网格控件。此外,当用户单击按钮时,您也可以使用Button列并打开包含该集合的表单。 -
我不想使用子网格,我只想在 TextBoxColumn 中将属性显示为字符串,如下所示:CollectionElement1、CollectionElement2 等。
-
"公共列表
-
好吧。它不是我的课,acually只是一个参考。所以我不能在任何地方改变它。那 List
-
分享模型代码。
标签: c# winforms data-binding datagridview