我有一个List<List<string>>
,其中外部列表是网格的行,内部列表是列值。
如何打包List<List<string>>
以使其成为网格的合适数据源,接受IList
或IBindingList
?
实际上我希望它被视为List<MyObject>
,MyObject
类将字符串公开为绑定的公共属性。
我无法更改列表,它可能有很多行,因此复制数据并不理想。
一个简单的例子就是以下代码DataGridView
上放置了WinForm
:
public class SupplierEntry
{
public string SupplierCode
{
get
{
return "SUPPLIERCODE";
}
}
public string SupplierTitle
{
get
{
return "SUPPLIERTITLE";
}
}
}
private void Test()
{
List<string> supplierEntryString = new List<string>();
supplierEntryString.Add("SUPPLIERCODE");
supplierEntryString.Add("SUPPLIERTITLE");
List<List<string>> supplierListStrings = new List<List<string>>();
supplierListStrings.Add(supplierEntryString);
List<SupplierEntry> supplierListObjects = new List<SupplierEntry>();
SupplierEntry supplierEntryObject = new SupplierEntry();
supplierListObjects.Add(supplierEntryObject);
//this can't handle the nested collections, instead showing a Capacity and Count column
dataGridView1.DataSource = supplierListStrings;
//this works giving you a supplier code and title column
//dataGridView1.DataSource = supplierListObjects;
}