在WPF中对列表框进行排序时,如何将PropertyGroupDescription与相关的表列一起使用
本文关键字:PropertyGroupDescription 一起 列表 WPF 排序 | 更新日期: 2023-09-27 18:22:19
我想用相关的表属性名称lightType对列表进行分组。因此,我尝试了PropertyGroupDescription"RelatedPhantoms[0].lightType.Name",但它似乎找不到该属性。我该怎么解决这个问题?
ICollectionView view = CollectionViewSource.GetDefaultView(MainLightList.ItemsSource);
view.SortDescriptions.Add(new SortDescription("RelatedPhantoms[0].lightType.Name", ListSortDirection.Ascending));
view.SortDescriptions.Add(new SortDescription("lightSeries.Name", ListSortDirection.Ascending));
view.GroupDescriptions.Add(new PropertyGroupDescription("RelatedPhantoms[0].lightType.Name"));
view.GroupDescriptions.Add(new PropertyGroupDescription("lightSeries.Name"));
以下是支持这组光的数据
public class LightHead : CoreEntity
{
public LightHead()
{
this.RelatedPhantoms = new List<LightHead>();
this.OtherRelatedPhantoms = new List<LightHead>();
}
public LightSeries lightSeries { get; set; }
public Nullable<int> LightSeriesId { get; set; }
public virtual ICollection<LightHead> RelatedPhantoms { get; set; }
public virtual ICollection<LightHead> OtherRelatedPhantoms { get; set; }
}
}
public class LightSeries: CoreModelEntity
{
public string Name { get; set; }
public ICollection<LightHead> lightHeads { get; set; }
public LightType lightType { get; set; }
public Nullable<int> LightTypeId { get; set; }
public LightSeries() { }
public LightSeries(string name)
{
this.Name = name;
}
}
RelatedPhantoms
是LightHead
的集合,lightType
是LightSeries
的属性
所以"RelatedPhantoms[0].lightType.Name"
可能不起的作用
因为LightHead
类包含具有属性lightType
的类型LightSeries
的lightSeries
属性
因此您可以将属性描述更改为
"RelatedPhantoms[0].lightSeries.lightType.Name"
以上是基于查看发布的代码后的一些假设。您可以根据需要进行同样的调整。
同样值得验证的是,RelatedPhantoms集合的类型为IList<T>
,以支持索引器
还要验证RelatedPhantoms
集合是否应该是LightHead
或LightSeries
类型,因为LightSeries中确实存在lightHeads集合,这让我想到了这些类