如何将对象用作数据源c#

时间:2013-08-20 20:34:51

标签: winforms visual-studio-2010 c#-4.0

我正在试图弄清楚如何创建一个对象数据源,我可以在其中选择要在Visual Studio中显示哪些列以及所有这些。这是我到目前为止所做的,但我不确定我还应该做什么?

public class ItemData
{
    public string ItemName { get; set; }
    public string Description { get; set; }
    public string Quantity { get; set; }
    public string ManuPartNumber { get; set; }
    public string ListID { get; set; }
    public string VendorRef { get; set; }
    public string VendorName { get; set; }
    public string EditSequence { get; set; }
    public string UPC { get; set; }
}
public class ItemDataSource : IEnumerable<ItemData>
{
    private ICollection<ItemData> list;
    public ItemDataSource()
    {
        try
        {
            list = QBCom.GetItemList();
        }
        catch (Exception e)
        {
            list = new List<ItemData>();
        }
    }
    public ItemDataSource(IEnumerable<ItemData> data)
    {
        list = data.ToList();
    }
    public IEnumerator<ItemData> GetEnumerator()
    {
        foreach (var item in list)
        {
            yield return item;
        }
    }
    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return ((IEnumerable<ItemData>)this).GetEnumerator();
    }
}

我不是在谈论ASP.net,我在谈论像DataTables之类的东西。只是一个常规的winforms计划。

1 个答案:

答案 0 :(得分:1)

我假设您要绑定到DataGridView,如果是这样,我将从BindingSource继承并将列表设置为DataSource。然后,您可以将datagridview DataSource设置为该对象,以便在visual studio属性窗口中查看列。

public class ItemDataSource : BindingSource
{
    private ICollection<ItemData> list;
    public ItemDataSource()
    {
        try
        {
            list = QBCom.GetItemList();
        }
        catch (Exception e)
        {
            list = new List<ItemData>();
        }
        this.DataSource = list;
    }
    public ItemDataSource(IEnumerable<ItemData> data)
    {
        list = data.ToList();
        this.DataSource = list;
    }
}