C# DataGrid没有';不显示嵌套类

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

我希望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 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上。有什么想法吗?