C# DataGrid没有';不显示嵌套类
我希望WPF中的DataGrid将嵌套类显示到我的对象中。我正在使用NHibernate检索数据 我的模型课:C# DataGrid没有';不显示嵌套类,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我希望WPF中的DataGrid将嵌套类显示到我的对象中。我正在使用NHibernate检索数据 我的模型课: public class PublishedBook { public virtual long ID { get; set; } public virtual string Title { get; set; } public virtual YearSemester BookYearSemester { get; set; } public ove
public class PublishedBook
{
public virtual long ID { get; set; }
public virtual string Title { get; set; }
public virtual YearSemester BookYearSemester { get; set; }
public override string ToString()
{
return string.Format("{0} ({1})", Title, BookYearSemester);
}
}
public class YearSemester
{
public virtual long ID { get; set; }
public virtual string Description { get; set; }
public override string ToString()
{
return Description;
}
}
我的存储库类:
public class PublishedBookRepository : BaseRepository
{
public PublishedBookRepository(ISession objCurrentSession) :
base(objCurrentSession) { }
public IEnumerable<PublishedBook> GetAllPublishedBooks()
{
return base.CurrentSession
.CreateCriteria<PublishedBook>()
.List<PublishedBook>();
}
}
公共类PublishedBookRepository:BaseRepository
{
公开发布的BookRepository(ISession objCurrentSession):
基本(objCurrentSession){}
public IEnumerable GetAllPublishedBooks()
{
return base.CurrentSession
.CreateCriteria()
.List();
}
}
我的XAML代码:
<DataGrid x:Name="dagtagridPublishedBooks" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Title}" />
<DataGridTextColumn Header="YearSemester" Binding="{Binding YearSemester}" />
</DataGrid.Columns>
</DataGrid>
在第二列中,不显示数据。
有人知道为什么吗?
谢谢,伙计们 第二列上绑定的路径应该是属性名:
bookyearseurm
,而不是类名yearseurm
。尝试:
<DataGrid x:Name="dagtagridPublishedBooks" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Title}" />
<DataGridTextColumn Header="YearSemester" Binding="{Binding BookYearSemester}" />
</DataGrid.Columns>
</DataGrid>
第二列上绑定的路径应该是属性名:
BookYearSerm
,而不是类名YearSerm
。尝试:
<DataGrid x:Name="dagtagridPublishedBooks" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Title}" />
<DataGridTextColumn Header="YearSemester" Binding="{Binding BookYearSemester}" />
</DataGrid.Columns>
</DataGrid>
因为yearestim
是一个类,所以可以使用绑定的完整路径显示其属性,如bookyearestim.ID
或bookyearestim.Description
,或者使用将被类对象替换的DataTemplate
定义自定义模板因为yearestim
是一个类,您可以使用绑定的完整路径显示其属性,如bookyearestim.ID
或bookyearestim.Description
,或者使用将被类对象替换的DataTemplate
定义自定义模板谢谢,Jelly,但它也不起作用。BookYearSembert属性的ToString()值未显示在DataGrid上。有什么想法吗?谢谢你,杰利,但它也不起作用。BookYearSembert属性的ToString()值未显示在DataGrid上。有什么想法吗?