突然搞不懂貌似应该很简单的CollectionViewSource的Grouping问题了

wpf3d wpf3d 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
目的:Northwind数据库的Product表按CategoryName(或CategoryId)分组显示。

数据库就这么简单了:


//NorthwindDomainService.metadata
internal sealed class ProductMetadata
{
...
[Include]
public Category Category { get; set; }
...

//NorthwindDomainService.cs
public IQueryable<Product> GetProducts()
{
return this.ObjectContext.Products.Include("Category") ;
}

这些都做了。



//HomeViewModel.cs
public class HomeViewModel
{
public IEnumerable<Product> Products { get; set; }
public HomeViewModel()
{
var context = new NorthwindDomainContext();
Products = context.Products;
if (!DesignerProperties.IsInDesignTool)
context.Load(context.GetProductsQuery());
}
}


Home.xaml
xmlns:vm="clr-namespace:GroupingTest002.ViewModels"
...
<navigation:Page.Resources>
<CollectionViewSource x:Key="ProductsCV" Source="{Binding Products}">

</CollectionViewSource>
</navigation:Page.Resources>
<navigation:Page.Style>
<StaticResource ResourceKey="PageStyle"/>
</navigation:Page.Style>
<navigation:Page.DataContext>
<vm:HomeViewModel />
</navigation:Page.DataContext>

...
<sdk:DataGrid Height="300" ItemsSource="{Binding Source={StaticResource ProductsCV}}" AutoGenerateColumns="False">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Product Id" SortMemberPath="ProductID" Binding="{Binding ProductID}" />
<sdk:DataGridTextColumn Header="Product Name" SortMemberPath="ProductName" Binding="{Binding ProductName}" />
<sdk:DataGridTextColumn Header="Cateogry" SortMemberPath="CategoryId" Binding="{Binding Category.CategoryName}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>

目前为止显示没问题。

但是,想用CategoryId分组没效果, PropertyName设成Category, Category.CategoryName等等都不行。但用Product表的ReorderLevel, Discontinued等是可以分组的。
<CollectionViewSource x:Key="ProductsCV" Source="{Binding Products}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="CategoryId" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

难道不能用外键字段进行分组吗?
...全文
评论 2
收藏 已收藏
分享
返回顶部
wpf3d
WPF/Silverlight 8,757 成员 12,031 内容