C # WindowsForm GridView - Как добавить класс в GridView? - PullRequest
1 голос
/ 26 января 2012
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.

1 Ответ

1 голос
/ 26 января 2012

вы не можете использовать 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 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; }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...