C# 如何在datagrid中显示列表
我正在尝试创建一个datagrid,它将显示我创建的类对象中的数据。到目前为止,使用我当前的代码,它将在我编码的列中显示正确的单元格数,但实际上它不会填充数据 对象类:C# 如何在datagrid中显示列表,c#,list,datagrid,C#,List,Datagrid,我正在尝试创建一个datagrid,它将显示我创建的类对象中的数据。到目前为止,使用我当前的代码,它将在我编码的列中显示正确的单元格数,但实际上它不会填充数据 对象类: public class RCTask { public long tID = 0; public string taskTitle; public TimeSpan startTime; public TimeSpan endTime; public TimeSpan hoursSpen
public class RCTask
{
public long tID = 0;
public string taskTitle;
public TimeSpan startTime;
public TimeSpan endTime;
public TimeSpan hoursSpent;
public bool sorted = false;
public RCTask()
{ }
该列表位于另一个表单上,因此我正在使用属性来访问它。
数据网格编码:
private void bindTimes()
{
taskTimesSource.DataSource = Program.timesheetListI;
gridTimes();
}
private void gridTimes()
{
timesGrid.AutoGenerateColumns = true;
DataGridViewCell cell = new DataGridViewTextBoxCell();
DataGridViewTextBoxColumn ID = new DataGridViewTextBoxColumn()
{
CellTemplate = cell,
Name = "idColumn",
HeaderText = "ID",
DataPropertyName = "taskTitle"
};
timesGrid.Columns.Add(ID);
}
首先尝试gridTimes方法,然后为grid设置数据源。首先,您必须将RCTask类的字段封装为属性。 例如,如果要在DataGridView中显示taskTitle的值,必须定义如下的公共属性:
public class RCTask
{
public long tID = 0;
public string taskTitle;
public TimeSpan startTime;
public TimeSpan endTime;
public TimeSpan hoursSpent;
public bool sorted = false;
public string TaskTitle
{
get
{
return taskTitle;
}
}
public RCTask()
{ }
}
private void bindTimes()
{
// Initialize table structure
gridTimes();
// Set data
taskTimesSource.DataSource = Program.timesheetListI;
}
其次,您必须更改数据设置过程的顺序。
初始化表结构后设置数据源,如下所示:
public class RCTask
{
public long tID = 0;
public string taskTitle;
public TimeSpan startTime;
public TimeSpan endTime;
public TimeSpan hoursSpent;
public bool sorted = false;
public string TaskTitle
{
get
{
return taskTitle;
}
}
public RCTask()
{ }
}
private void bindTimes()
{
// Initialize table structure
gridTimes();
// Set data
taskTimesSource.DataSource = Program.timesheetListI;
}
这应该是一个评论。谢谢!我得到了要填充的数据。我将变量添加为属性,结果成功了。另外,为了增加您在新版本C中的学习,lambdas可以用于get样板文件。它可以帮助压缩代码。公共长任务ID=>tID;公共字符串TaskTitle=>TaskTitle;公共时间span StartTime=>StartTime;公共时间跨度EndTime=>EndTime;公共时间span hourspend=>hourspend;