Winform DataGridView修改數據源界面不刷新問題


錯誤描述

對於dataGridView,設置數據源為一個List集合時,修改了List集合以后即使重新設置數據源界面也不會刷新。

注:如果先設置DataSource=null;可以重新加載,但是界面設計器里面設置的列名稱,表頭全部消失。

解決方法

  1. 設置數據源為DataTable
  2. 使用Rows.Add方法添加子項,需要重新加載數據時,先用Rows.Clear清理所有子項。

示例代碼

private void BindData()
        {
            this.dgvMappings.ColumnCount = 5;
            this.dgvMappings.Columns[0].HeaderText = "數據源表名稱";
            this.dgvMappings.Columns[1].HeaderText = "數據源表主鍵";
            this.dgvMappings.Columns[2].HeaderText = "目標表名稱";
            this.dgvMappings.Columns[3].HeaderText = "數據源查詢字段";
            this.dgvMappings.Columns[4].HeaderText = "目標表插入字段";

            this.dgvMappings.Columns[0].Name = "SourceTableName";
            this.dgvMappings.Columns[1].Name = "SourceTablePrimaryKey";
            this.dgvMappings.Columns[2].Name = "TargetTableName";
            this.dgvMappings.Columns[3].Name = "SourceFields";
            this.dgvMappings.Columns[4].Name = "TargetFields";

            this.dgvMappings.Columns[0].Width = 100;
            this.dgvMappings.Columns[1].Width = 100;
            this.dgvMappings.Columns[2].Width = 100;
            this.dgvMappings.Columns[3].Width = 215;
            this.dgvMappings.Columns[4].Width = 215;

            this.dgvMappings.Rows.Clear();
            foreach(var map in settings.TableMapings)
            {
                this.dgvMappings.Rows.Add(new string[] { map.SourceTableName,map.SourceTablePrimaryKey,map.TargetTableName,map.SourceFields,map.TargetFields });
            }

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM