2013-08-20 21 views
1

我想弄清楚如何使对象数据源,我可以选择哪些列在Visual Studio中显示和所有。这是我迄今为止的,但我不知道我应该做什么?如何使用对象作为数据源c#

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

我假设你想要绑定到一个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; 
    } 
} 
+0

非常感谢。我不知道为什么,但即使我发布的例子似乎工作。所以现在我知道两种方法。我认为我喜欢这个更好,但它似乎更具可扩展性。 :d –

相关问题