2012-01-26 6 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; } 
    } 
} 
関連する問題