问题描述
我正在尝试使用 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>();
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();