我有一个List<List<string>>
外部列表将是网格的行,而内部列表将是列值。
如何包装List<List<string>>
它,使其成为网格的合适数据源,它接受IList
or IBindingList
?
实际上,我希望它被视为具有将字符串公开为用于绑定的公共属性的类List<MyObject>
。MyObject
我无法更改列表,并且它可以有大量的行,因此复制数据并不理想。
差异的一个简单示例是以下代码,其中包含DataGridView
a 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;
}