【发布时间】:2021-02-13 10:59:14
【问题描述】:
我通过简单地填充一个 List 然后将 List 分配给 DataGridView 的 DataSource 属性,将我的列表数据放入我的 DataGridView 中,但是在将列标题更改为不同于组成的类成员的名称之后列表,分配不再有效。
至少,网格中没有数据显示。
“有趣”的是它仍然在网格中插入适量的行(尽管是空的):
一开始我在网格中放置了 14 个“假”(占位符)行。我不知道为什么更改列标题中的文本会导致工作中出现问题。
我在它工作时所做的唯一更改(但列标题很丑)现在是这样的:
dataGridView1.AutoGenerateColumns = false;
-以及新列的添加:
dataGridView1.Columns.Add("MovieTitle", "Title");
. . .
private void frmMain_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = false;
LoadInitialData();
}
private void LoadInitialData()
{
List<MoviesSingleTable> listStartupData = new List<MoviesSingleTable>();
MoviesSingleTable mgdc;
//1
mgdc = new MoviesSingleTable
{
MovieTitle = "The Princess Bride",
IMDBRating = 8.1,
MPAARating = "PG",
durationInMinutes = 98,
YearReleased = "1987",
genres = "", // will add these later
actors = "",
directors = "",
screenwriters = ""
};
listStartupData.Add(mgdc);
. . .
//14
mgdc = new MoviesSingleTable();
mgdc.MovieTitle = "Will Penny";
mgdc.IMDBRating = 7.1;
mgdc.MPAARating = "NR"; // "Approved"
mgdc.durationInMinutes = 108;
mgdc.YearReleased = "1967";
mgdc.genres = "";
mgdc.actors = "";
mgdc.directors = "";
mgdc.screenwriters = "";
listStartupData.Add(mgdc);
dataGridView1.DataSource = listStartupData;
ConfigureGrid();
}
private void ConfigureGrid()
{
dataGridView1.BorderStyle = BorderStyle.Fixed3D;
dataGridView1.Columns.Add("MovieTitle", "Title");
dataGridView1.Columns.Add("IMDBRating", "IMDB");
dataGridView1.Columns.Add("MPAARating", "MPAA");
dataGridView1.Columns.Add("durationInMinutes", "Minutes");
dataGridView1.Columns.Add("YearReleased", "Year");
dataGridView1.Columns.Add("genres", "Genres");
dataGridView1.Columns.Add("actors", "Actors");
dataGridView1.Columns.Add("directors", "Directors");
dataGridView1.Columns.Add("screenwriters", "Screenwriters");
}
使用的类是:
public class MoviesSingleTable
{
public string MovieTitle { get; set; }
public double IMDBRating { get; set; }
public string MPAARating { get; set; }
public int durationInMinutes { get; set; }
public string YearReleased { get; set; }
public string genres { get; set; }
public string actors { get; set; }
public string directors { get; set; }
public string screenwriters { get; set; }
}
【问题讨论】:
-
在类的属性上使用 [DisplayName] 属性。 stackoverflow.com/questions/6228199/…
标签: c# .net-core datagridview