簡體   English   中英

綁定清單 <class> 到DataGridView

[英]Bind List<class> to DataGridView

我需要您有關如何將List綁定到DataGridView的幫助。 我嘗試使用BindingList<T>但仍然無法在gridview中顯示記錄。 我嘗試使用List<T> ,但仍然無法正常工作。

下面是我使用的代碼:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        ToolClientController ctrl = new ToolClientController();
        IpAddressTextbox.Text = ctrl.GetIPv4Config();
        PortNumberTextbox.Text = ctrl.GetPortNumber();
    }

    private void BrowseButton_Click(object sender, EventArgs e)
    {
        DialogResult result = openFileDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            ToolMsgFileTextbox.Text = openFileDialog1.FileName;
        }
    }

    private void UploadButton_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrWhiteSpace(ToolMsgFileTextbox.Text))
        {
            FileTypeError.SetError(UploadButton, "Please enter filename.");
            return;
        }

        if (!openFileDialog1.FileName.Contains(".txt"))
        {
            FileTypeError.SetError(UploadButton, "File should be in .txt");
            return;
        }

        ToolClientController ctrl = new ToolClientController();            

        List<ToolMessages> test = new List<ToolMessages>();
        ToolMessages tool = new ToolMessages();
        tool.IsPass = true;
        tool.ToolMessageReply = string.Empty;
        tool.ToolMessageRequest = "x";
        test.Add(tool);

        MessageGridViews.AutoGenerateColumns = false;

        DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
        col1.DataPropertyName = "ToolMessageRequest";
        col1.HeaderText = "Request";            
        MessageGridViews.Columns.Add(col1);

        BindingList<ToolMessages> bind = new BindingList<ToolMessages>(test);

        MessageGridViews.VirtualMode = true;
        MessageGridViews.DataSource = bind; 
    }
}

根據您的代碼,我准備了簡單的WinForms應用程序:

public Form1()
{
    InitializeComponent();
    List<ToolMessages> test = new List<ToolMessages>();
    ToolMessages tool = new ToolMessages();
    tool.IsPass = true;
    tool.ToolMessageReply = string.Empty;
    tool.ToolMessageRequest = "x";
    test.Add(tool);

    dataGridView1.AutoGenerateColumns = false;

    DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
    col1.DataPropertyName = "ToolMessageRequest";
    col1.HeaderText = "Request";
    dataGridView1.Columns.Add(col1);

    BindingList<ToolMessages> bind = new BindingList<ToolMessages>(test);

    dataGridView1.DataSource = bind;
    dataGridView1.Show();
}

我直接通過WinForms設計器將dataGridView1添加到窗體中,因此InitializeComponent方法如下所示:

private void InitializeComponent()
{
    this.dataGridView1 = new System.Windows.Forms.DataGridView();
    ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
    this.SuspendLayout();
    // 
    // dataGridView1
    // 
    this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    this.dataGridView1.Location = new System.Drawing.Point(560, 57);
    this.dataGridView1.Name = "dataGridView1";
    this.dataGridView1.Size = new System.Drawing.Size(240, 150);
    this.dataGridView1.TabIndex = 1;
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(967, 399);
    this.Controls.Add(this.dataGridView1);
    this.Name = "Form1";
    this.Text = "Form1";
    ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).EndInit();
    ((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit();
    ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
    this.ResumeLayout(false);
}

一切似乎都可以正常工作...數據綁定到網格,輸出看起來像: 在此處輸入圖片說明

這正是我希望看到的,所以我看不到解決方案有任何真正的問題,除非您發布更大的代碼段,以便我可以重現您遇到的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM