繁体   English   中英

WinForms DataGridView-最后一行数据未显示

[英]WinForms DataGridView - Last row data not showing up

我有一个VirtualGrid设置为true的DataGridView,并且通过CellValueNeeded事件提供了数据。 一切工作正常,但是...最后一行没有数据。 我在设计器中设置了列,其中几个是Link列,这些列仅不显示数据。 我确认数据在我的源对象中(我正在绑定到IEnumerable),并且RowCount设置正确。

如果我在源中添加另一行,则不会显示该行,但是会显示以前不可见的行。

AllowUserToAddRows 问题-设置为false。 该行只是空白,并且在IEnumerable中似乎从未为该项目调用CellValueNeeded事件。

我在这里拔头发。 请帮忙。

gvPilots.VirtualMode = true;
gvPilots.AutoGenerateColumns = false;
gvPilots.AllowUserToAddRows = false;

IEnumerable<pilot> _pilotData = jamboree.pilots.Where(p => p.sync_state != (byte)SyncState.IsDeleted);
gvPilots.RowCount = _pilotData.Count();

private void gvPilots_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
        if (e.RowIndex == this.gvPilots.RowCount - 1) return;

        pilot thisPilot = null;

        thisPilot = this._pilotData.ElementAt(e.RowIndex);

        switch (this.gvPilots.Columns[e.ColumnIndex].Name)
        {
            case "columnId":
                e.Value = thisPilot.id;
                break;
            /* Bunch of case statements... */
            case "columnType":
                e.Value = Enum.GetName(typeof(PilotType), thisPilot.pilot_type);
                break;
        }
}

我只是回答了我自己的问题……CellValueNeeded事件的第一行就是阻止数据显示。 复制并粘贴FTW。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM