DataGridGrouping.axaml代码
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="300" Width="450" xmlns:local="using:AvaloniaUI" xmlns:db="using:AvaloniaUI.Demos.Book._19.StoreDatabase" x:Class="AvaloniaUI.DataGridGrouping" Title="DataGridGrouping"> <Grid> <DataGrid Margin="5" x:DataType="local:DataGridGrouping" AutoGenerateColumns="False" ItemsSource="{Binding ProductsView}"> <DataGrid.Columns> <DataGridTextColumn Header="Product" x:DataType="db:Product" Width="175" Binding="{Binding ModelName}" /> <DataGridTextColumn Header="Price" x:DataType="db:Product" Binding="{Binding UnitCost, StringFormat='{}{0:C}'}" /> <DataGridTextColumn Header="Model Number" x:DataType="db:Product" Binding="{Binding ModelNumber}" /> </DataGrid.Columns> </DataGrid> </Grid> </Window>
DataGridGrouping.axaml.cs代码
using Avalonia;
using Avalonia.Collections;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using AvaloniaUI.Demos.Book._19.StoreDatabase;
using System.Collections.ObjectModel;
namespace AvaloniaUI;
public partial class DataGridGrouping : Window
{
private StoreDb1 db = new StoreDb1();
public ObservableCollection<Product> Products { get; }
public DataGridCollectionView ProductsView { get; }
public DataGridGrouping()
{
InitializeComponent();
Products = db.GetProducts();
ProductsView = new DataGridCollectionView(Products);
// 按 CategoryName 分组
ProductsView.GroupDescriptions.Add(new DataGridPathGroupDescription(nameof(Product.CategoryName)));
DataContext = this;
}
}
运行效果

浙公网安备 33010602011771号