c# - 当没有数据集可用时,DataGridView 显示一个空行
问题描述
DataGridView
当没有可用的数据集时,我的总是显示一个空行。数据通过绑定源来自 Entity Framework 6 数据库。我的期望是,当没有可用的数据集时,DataGridView
只显示行标题,而没有其他内容。
来自InitializeCompnent()
:
this.dgvWarnings.AllowUserToAddRows = false;
this.dgvWarnings.AllowUserToDeleteRows = false;
this.dgvWarnings.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvWarnings.Location = new System.Drawing.Point(12, 384);
this.dgvWarnings.MultiSelect = false;
this.dgvWarnings.Name = "dgvWarnings";
this.dgvWarnings.ReadOnly = true;
this.dgvWarnings.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.dgvWarnings.Size = new System.Drawing.Size(817, 95);
this.dgvWarnings.TabIndex = 115;
this.dgvWarnings.DoubleClick += new System.EventHandler(this.dgvWarnings_DoubleClick);
从主类:
private void Startseite_Load(object sender, EventArgs e)
{
_context = new SqlContext();
_context.Configuration.ProxyCreationEnabled = false;
_context.ProgramWarnings.Load();
bindProgramWarningList.DataSource = _context.ProgramWarnings.Local.ToBindingList().Where(t => t.Acknowledged == false);
dgvWarnings.AutoGenerateColumns = false;
dgvWarnings.AutoSize = true;
dgvWarnings.DataSource = bindProgramWarningList;
DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
column.DataPropertyName = "WarningMessage";
column.Name = "Warnung";
dgvWarnings.Columns.Add(column);
column = new DataGridViewTextBoxColumn();
column.DataPropertyName = "WarningTime";
column.Name = "Datum/Uhrzeit";
dgvWarnings.Columns.Add(column);
一些事件:
private void dgvWarnings_DoubleClick(object sender, EventArgs e)
{
if (dgvWarnings.SelectedRows.Count == 1)
{
((ProgramWarning)dgvWarnings.SelectedRows[0].DataBoundItem).Acknowledged = true;
_context.SaveChanges();
bindProgramWarningList.DataSource = _context.ProgramWarnings.Local.ToBindingList().Where(t => t.Acknowledged == false);
bindProgramWarningList.ResetBindings(true);
}
}
解决方案
初始化网格列后尝试移动以下说明:
_context = new SqlContext();
_context.Configuration.ProxyCreationEnabled = false;
_context.ProgramWarnings.Load();
bindProgramWarningList.DataSource =
_context.ProgramWarnings.Local.ToBindingList().Where(t => t.Acknowledged == false);
还要验证您的网格在完全初始化后是否开始为空,以及是否是此命令添加了您的幽灵线(只需备注 bindProgramWarningList.DataSource =...)
干杯
ps:看来你在我发帖时编辑了。如果它是数据源,请尝试将结果加载到新列表并将其用作数据源。在最坏的情况下,您甚至可以检查是否有空行并将其从您的视图列表中删除...
推荐阅读
- c - 在 macOS 上从 dev_t 获取设备文件系统路径
- matlab - 我可以用复数像素值保存图像吗
- c++ - 如何使用从 Swift 代码调用的线程在 C++ 上创建异步调用函数?
- json - 无法在 Angular 5 中获取本地 json 文件 - 持续 404 错误
- java - 如何从另一个包中的超类测试受保护的继承方法
- c# - C# Json 反序列化对象数组
- excel - 如何在 VBA 中使用 SendKeys 调试问题?
- r - 按 ID 匹配两个数据集之间的观察结果
- git - 多个用户,在 Git 上积极地在不同的工作分支上工作
- javascript - 有没有办法可以动态设置 formControlName角度元素?