起初,我真的很抱歉,我的英语不太流利。请有人帮助我解决此问题,最近两天我正在寻找解决方案。
我上了这样的课
public class MasterCategory
{
public virtual long Id { set; get; }
public virtual string Code { set; get; }
public virtual string Name { set; get; }
public virtual string Comments { set; get; }
public MasterCategory Self { get { return this; } }
}
public class Category
{
public virtual long Id { set; get; }
public virtual MasterCategory MasterCategoryID { set; get; }
public virtual string Code { set; get; }
public virtual string Name { set; get; }
public virtual string Comments { set; get; }
}
使用Fluent Nhibernate,将数据填充到两个类的自定义BaseCollection
类中,然后将“主类别”集合设置为DatagridviewComboBoxColumn的数据源。
接下来,我将Category Collection设置为Datagridview的数据源。当我喜欢的时候,Datagridview会抛出this error。
当我更改“类别”集合时,“主类别数据源”值中的每个数据MastercategoryID属性值都可以正常工作。但是MastercategoryID属性的内容是通过NHibernate来自数据库的。
我比较了DatagridviewComboBox数据源值和MastercategoryID属性值。没有区别
MasterCategoryCollection m = new MasterCategoryCollection();
m.Select("where CompanyInfoID.Id = " + ((CompanyInfo)GlobalValues.Company).Id);
CategoryCollection c = new CategoryCollection();
c.Select("where MasterCategoryID.CompanyInfoID.Id = " + ((CompanyInfo)GlobalValues.Company).Id);
CategoryCollection ccc = new CategoryCollection();
int ind = 0;
foreach (Category cd in c)
{
ccc.Add(cd);
ind++;
}
var col = new DataGridViewComboBoxColumn
{
DataSource = m,
HeaderText = "Insurance Type",
DataPropertyName = "MasterCategoryID",
DisplayMember = "Name",
ValueMember = "Self",
};
grid.Columns.Add(col);
grid.DataSource = ccc;
panel1.Controls.Add(grid);
这会导致错误。我需要解决方案,请有人帮我解决这个问题