【问题标题】:C# WindowsForm GridView - How to add class into GridView?C# Windows 窗体 GridView - 如何将类添加到 GridView?
【发布时间】:2012-01-26 16:47:04
【问题描述】:
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上添加值。

【问题讨论】:

  • 你使用 Item/EditItem/Footer 模板吗?可以将空白行创建为页脚模板的一部分,然后您可以简单地将PurchaseOrderItems 列表按原样绑定到网格。另外,是什么阻止您将空的PurchaseOrderItem 附加到您的集合然后绑定到.DataSource

标签: c# list class datagridview


【解决方案1】:

你不能使用 BindingList<PurchaseOrderItem> 吗? 这应该允许您从 dgv 控件将项目添加到您的集合中(使用空行)


编辑:我创建了简单的 WinForm 应用程序, 主窗体中只有 DGV 控件

Form1.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<PurchaseOrderItem> list = new BindingList<PurchaseOrderItem>();
    }

    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; }
    }
}

【讨论】:

    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2012-10-31
    • 1970-01-01
    • 2023-04-07
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多