CollectionViewクラスには,グループ化および並べ替えを実装する機能を持つIEnumerableインターフェイスが用意されています。
CollectionViewSourceクラスでは,CollectionView クラスのプロパティを XAML から設定することができます。
このCollectionViewSourceクラスをDataGridのItemsSourceにバインドするとこんな感じのDataGridが作れます。(グループ化のみ実装)
参考にしたサイト
お世話になりました。
方法: データ グリッド内のデータが管理グループ、並べ替え、およびフィルター | Microsoft Docs
Grouping In Datagrid In WPF | Method ~ of ~ Tried
CollectionViewSourceでデータを作る
ListCollectionView
// MainWindowViewModel public class MainWindowViewModel { private List<Company> _companys = new List<Company>(); public MainWindowViewModel() { _companys = Company.GetDummyList(); DisplayCompanys = new ListCollectionView(_companys); } public ListCollectionView DisplayCompanys { get; set; } }
基本のDataGridを作成する
<Window x:Class="GroupingDataGrid.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 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" xmlns:local="clr-namespace:GroupingDataGrid" mc:Ignorable="d" Title="MainWindow" Height="300" Width="300"> <Window.DataContext> <local:MainWindowViewModel /> </Window.DataContext> <Grid> <DataGrid ItemsSource="{Binding Path=DisplayCompanys}"> </DataGrid> </Grid> </Window>