Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在datagrid中显示列表_C#_List_Datagrid - Fatal编程技术网

C# 如何在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

我正在尝试创建一个datagrid,它将显示我创建的类对象中的数据。到目前为止,使用我当前的代码,它将在我编码的列中显示正确的单元格数,但实际上它不会填充数据

对象类:

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;