我希望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>();
}
}
我的XAML代码:
<DataGrid x:Name="dagtagridPublishedBooks" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Title}" />
<DataGridTextColumn Header="YearSemester" Binding="{Binding YearSemester}" />
</DataGrid.Columns>
</DataGrid>
在第二列中,不显示数据。 谁知道为什么? 谢谢,伙计们!!
答案 0 :(得分:1)
第二列上绑定的路径应该是属性名称:BookYearSemester
,而不是类名YearSemester
。试试:
<DataGrid x:Name="dagtagridPublishedBooks" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Title}" />
<DataGridTextColumn Header="YearSemester" Binding="{Binding BookYearSemester}" />
</DataGrid.Columns>
</DataGrid>
答案 1 :(得分:0)
由于YearSemester
是一个类,因此您可以使用BookYearSemester.ID
或BookYearSemester.Description
之类的绑定的完整路径来显示其属性,也可以使用DataTemplate
来定义自定义模板被替换为类对象