为什么datagridview不显示绑定类类型的私有属性
本文关键字:属性 类型 datagridview 显示 绑定 为什么 | 更新日期: 2023-09-27 18:04:30
我有一个显示BlclsStaffMember
类列表的Datagridview dgvDTMUDetails
public void ShowData()
{
BlclsStaffMember OBlclsStaffMember = new BlclsStaffMember();
List<BlclsStaffMember> liStaffMember = new List<BlclsStaffMember>();
liStaffMember = OBlclsStaffMember.getAllStaffMember();
dgvDTMUDetails.DataSource = liStaffMember;
}
类的定义为:
public class BlclsStaffMember
{
private int Perno { get; set; }
private string Surname { get; set; }
private string Forename { get; set; }
private string Name { get; set; }
public List<BlclsStaffMember> getAllStaffMember()
{
DTMUEntities ODTMUEntities = new DTMUEntities();
return ODTMUEntities.STAFF_MEMBER.Select(s => new
{
s.Perno,
s.Surname,
s.Forename
}).ToList().Distinct().Select(s1 => new BlclsStaffMember
{
Perno = s1.Perno,
Forename = s1.Forename,
Surname = s1.Surname,
Name = s1.Surname + ", " + s1.Forename + " [" + s1.Perno + "]"
}).ToList().Distinct().ToList();
}
}
问题是: datagridview不显示任何数据时,类的属性被标记为私有
而当属性是公共的,那么datagridview显示数据
为什么?
也在情况下,当我使用listBox代替Datagridview,它也填充数据,即使属性是私有的。
谁能解释一下
DataGrid根据绑定到的类的属性自动生成列,除非您手动定义列。
我建议您将属性设置为公共,并使用私有字段来操作数据。一个例子:
private string _surname;
public string Surname
{
get
{
return _surname;
}
set
{
_surname = value;
}
}