WPFのサードパーティー製品であるInfragistics WPFについて、
高機能グリッドや、ピボットなど魅力的なコントロールが数多く含まれています。
が、高機能ゆえに複雑な設定が必要では?と思われるかもしれませんが、
グリッドとピボットを機能あわせても最小限のコード量(約15行)で動かすことができます!
サンプルコード
MainWindow.xaml.cs
private void SettingDatas<T>(IEnumerable<T> datas)
{
// Gridへのデータソースを設定
xamDataGrid.DataSource = datas;
// Pivotに対するデータソースを設定
FlatDataSource flatData = new FlatDataSource()
{
ItemsSource = datas,
ConnectionSettings = new FlatDataConnectionSettings(){ ItemsSource = datas}
};
xamPivot.DataSource = flatData;
xamPivotDataSelector.DataSource = flatData;
}
MainWindow.xaml
<igWPF:XamDataGrid x:Name="xamDataGrid">
<igWPF:XamDataGrid.FieldSettings>
<igWPF:FieldSettings AllowRecordFiltering="true" />
</igWPF:XamDataGrid.FieldSettings>
</igWPF:XamDataGrid>
<ig:XamPivotGrid x:Name="xamPivot"/>
<ig:Expander><ig:XamPivotDataSelector x:Name="xamPivotDataSelector" /></ig:Expander>
あとは表示したいデータを設定するのみ。
// サンプルデータを設定
SettingDatas<SampleData>(datas);
public class SampleData
{
public DateTime Date { get; set; }
public string Category { get; set; }
public string Name { get; set; }
public decimal Budget { get; set; }
public decimal Actual { get; set; }
}
グリッドの操作
ピボットの操作
サンプルコード含め、GitHubにコミットしています。
https://github.com/furugen/infragistics-wpf-xampivotgrid-001
※別途、Infragistics製品が必要となりますので、ご興味があればインストールしてお試しください。
https://jp.infragistics.com/products/wpf
次回はExcelのデータを読み込みや、チャート機能の連携に関する記事を書こうと思います。
(InfragisticsのExcelライブラリもかなり強力です!)