“ CS0122 'Collection<Larare>.Items' 由于其保护级别而无法访问“但对象是公共的

问题描述

我正在尝试使用 https://stackoverflow.com/a/46898543/12955083

中规定的 Delete_Click 功能
private void Delete_Click(object sender,EventArgs e){  
lararLista.Items.Clear(); }

但是我收到错误 CS0122 'Collection.Items' 由于其保护级别而无法访问

Larare 集合在绑定列表中定义为 lararLista = new BindingList<Larare>();

Larare 的代码

class Larare : Personal,ILarare
    {
        #region Variabler och ctor

        private string namn;
        private int personalID;
        private long personNummer;
        private long personNnummer;
        private string email;
        private int telNr;
       

        public Larare(string Namn,int PersonalID,long PersonNummer,string Email,int TelNr)
        {
            this.Namn = namn;
            this.PersonalID = personalID;
            this.PersonNummer = personNnummer;
            this.Email = email;
            this.TelNr = telNr;
        }

并且 getter 和 setter 定义在它继承的类中

    class Personal : IPersonal
    {
        private string namn;
        private int personalID;

        private long personNnummer;
        private string email;
        private int telNr;


        private string taBort;

        public string Namn
        {
            get { return namn; }
            set { namn = value; }
        }
        public int PersonalID
        {
            get { return personalID; }
            set { personalID = value; }
        }
        public long PersonNummer
        {
            get { return personNnummer; }
            set { personNnummer = value; }
        }
        public string Email
        {
            get { return email; }
            set { email = value; }
        }
        public int TelNr
        {
            get { return telNr; }
            set { telNr = value; }
        }


        public string TaBort
        {
            get { return taBort; }
            set { taBort = value; }
        }

问题出在哪里?

编辑:

 void lararLista_AddingNew(object sender,AddingNewEventArgs e)
    {
        e.NewObject = new Larare(personalNamnText.Text,int.Parse(personalPersonalIDText.Text),long.Parse(personalPersonnummerText.Text),personalEmailText.Text,int.Parse(personalTelNrText.Text));

    }

lararLista.Add(new Larare("Rasmus","123","198911224130","Rasmus@HS.se","0704554488"));

是向集合中添加新对象的代码

解决方法

BindingList 中的 Items 属性不是公开的,因此您无法直接访问它。试试:

lararLista.ClearItems();