繁体   English   中英

使用List(Of Entity)绑定到DataGridView Datasource属性会引发空引用异常

[英]Binding to DataGridView Datasource property with List(Of Entity) throw a null reference exception

我尝试为此解决了将近4个小时,但找不到任何解决方案

public class FinalClassScoreModel
{
    private readonly FinalClassScore _finalClassScore;

    public FinalClassScoreModel(FinalClassScore finalClassScore)
    {
        this._finalClassScore = finalClassScore;
    }

    public int EnrollId
    {
        get
        {
            return this._finalClassScore.EnrollId;
        }
    }

    public string StudentNo
    {
        get
        {
            return this._finalClassScore.Enroll.Student.StudentNo;
        }
    }

    public string ReversedName
    {
        get
        {
            return this._finalClassScore.Enroll.Student.ReversedName;
        }
    }

    public decimal? Prelim
    {
        get
        {
            return this._finalClassScore.Prelim;
        }
    }

    public string PrelimE
    {
        get
        {
            return this._finalClassScore.PrelimE;
        }
    }

    public decimal? Midterm
    {
        get
        {
            return this._finalClassScore.Midterm;
        }
    }

    public string MidtermE
    {
        get
        {
            return this._finalClassScore.MidtermE;
        }
    }

    public decimal? Final
    {
        get
        {
            return this._finalClassScore.Final;
        }
    }

    public string FinalE
    {
        get
        {
            return this._finalClassScore.FinalE;
        }
    }

    public decimal? FinalGrade
    {
        get
        {
            return this._finalClassScore.FinalGrade;
        }
    }


    public bool IsDropped
    {
        get
        {
            return this._finalClassScore.Enroll.IsDropped;
        }
    }

    public bool IsIncomplete
    {
        get
        {
            return this._finalClassScore.Enroll.IsIncomplete;
        }
    }

    public bool IsGradeSubmitted
    {
        get
        {
            return this._finalClassScore.Enroll.IsGradeSubmitted;
        }
    }


Public Property FinalClassScoreModels() As IEnumerable(Of FinalClassScoreModel) Implements IAlternativeView.FinalClassScoreModels
        Get
            Return Me._finalClassScoreModels
        End Get
        Set(ByVal value As IEnumerable(Of FinalClassScoreModel))
            If DesignMode Then Exit Property
            Me._finalClassScoreModels = value
            Me.dgrAlternativeGrades.DataSource = Me._finalClassScoreModels
        End Set
    End Property

起初没关系,但是当我在FinalClassScoreModelList上删除1个数据并重新运行Me.dgrAlternativeGrades.Datasource = Me._finalClassScoreModels ,它将在上引发nullreference exception

public string StudentNo
    {
        get
        {
            return this._finalClassScore.Enroll.Student.StudentNo;
        }
    }

顺便说一句,如果我没有在datagridview上设置每个列的datapropertyname ,它将正常工作,但是我需要设置它,因为我不想自动生成列。

我的项目是vb.net和C#的组合

对于那些也会遇到此问题的初学者,我在FinalClassScoreModel类上做了什么

public class FinalClassScoreModel
{
    private readonly FinalClassScore _finalClassScore;
    private readonly Enroll _enroll;

    public FinalClassScoreModel(FinalClassScore finalClassScore, Enroll enroll)
    {
        this._finalClassScore = finalClassScore;
        this._enroll = enroll;
    }

    public int EnrollId
    {
        get
        {
            return this._finalClassScore.EnrollId;
        }
    }

    public string StudentNo
    {
        get
        {
            return this._enroll.StudentNo;
        }
    }

这样,即使它为null或不为null,也只会获得ot StudentNo的值

谢谢大家

暂无
暂无

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

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