2012-01-26 2 views
1
public class PurchaseOrderItem 
{ 
    public Int64 PONumber { get; set; } 
    public string Description { get; set; } 
    public string UM { get; set; } 
    public int QTY { get; set; } 
    public decimal Cost { get; set; } 
} 

foreach (PurchaseOrderItem item in po.PurchaseOrderItems) 
{ 
    dgvPOItem.Rows.Add(item); 
} 

위의 Foreach가 작동하지 않습니다. 데이터를 추가 한 후에 빈 행을 추가해야하므로 DataSource를 사용할 수 없습니다. 따라서 사용자가 나중에 gridview에 값을 추가 할 수있는 빈 행이있게됩니다.C# WindowsForm GridView - GridView에 클래스를 추가하는 방법?

+0

Item/EditItem/Footer 템플릿을 사용합니까? 빈 행은 꼬리말 템플릿의 일부로 생성 될 수 있습니다. 그러면'PurchaseOrderItem' 목록을 그대로 그리드에 바인딩 할 수 있습니다. 또한, 빈''PurchaseOrderItem'을 콜렉션에 추가하고 나서'.DataSource'에 바인딩하는 것을 멈추게하는 것은 무엇입니까? –

답변

1

BindingList<PurchaseOrderItem>을 사용할 수 없습니까? 이 (빈 행을 사용하여) 당신이 DGV 컨트롤에서 컬렉션에 항목을 추가 할


편집을 허용해야한다 : 나는 간단한의 WinForm 응용 프로그램, 기본 폼

을 Form1에 만 DGV 컨트롤을 만들었습니다. cs 코드 :

 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 { 
    public partial class Form1 : Form { 
     public Form1() { 
      InitializeComponent(); 

      list.Add(new PurchaseOrderItem() { 
       PONumber = 1, 
       Description = "First item", 
       UM = "something", 
       QTY = 2341, 
       Cost = 0.99M 
      }); 

      dataGridView1.DataSource = list; 

      dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded); 
     } 

     void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { 
      object o = list; // added for breakpoint with variable viewing 
      // you can watch your list changing here, when you add new rows 
     } 

     BindingList list = new BindingList(); 
    } 

    public class PurchaseOrderItem { 
     public Int64 PONumber { get; set; } 
     public string Description { get; set; } 
     public string UM { get; set; } 
     public int QTY { get; set; } 
     public decimal Cost { get; set; } 
    } 
} 
관련 문제