【发布时间】:2021-04-18 20:04:18
【问题描述】:
我正在尝试使用 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"));
是向集合中添加新对象的代码
【问题讨论】:
-
您是否为您的
class指定了访问修饰符?如果不是,c# 默认为internal- 不是public。另外:在您提供的代码中,您没有对Collection.Items...做任何事情吗? -
对象用 void lararLista_AddingNew(object sender, AdditionalNewEventArgs e) { e.NewObject = new Larare(personalNamnText.Text, int.Parse(personalPersonalIDText.Text), long.Parse(personalPersonnummerText.Text) , 个人电子邮件文本.文本, int.Parse(personalTelNrText.Text));那是在同一个文件中。我已将访问修饰符更改为公开但没有更改
-
请将该代码添加到您的问题 - 因为在评论中,它完全不可读。因此有人说:您的代码 sn-p 仍然对
Collection.Items没有任何作用