'宣言 Public Class C1DataFilter Inherits C1.Framework.XViewHost
public class C1DataFilter : C1.Framework.XViewHost
'宣言 Public Class C1DataFilter Inherits C1.Framework.XViewHost
public class C1DataFilter : C1.Framework.XViewHost
private void InitializeDataFilter()
{
//DataFilterコントロールを初期化します
c1DataFilter1 = new C1DataFilter();
c1DataFilter1.Dock = DockStyle.Fill;
splitContainer1.Panel1.Controls.Add(c1DataFilter1);
//DataGridViewのデータソースを設定します
dataGridView1.DataSource = _carsTable;
//AutoGenerateFiltersをtrueに設定すると、フィルタが自動的に生成します
c1DataFilter1.AutoGenerateFilters = true;
//自動的に生成されたフィルタを変更するには、FilterAutoGeneratingイベントを登録します
c1DataFilter1.FilterAutoGenerating += C1DataFilter1_FilterAutoGenerating;
//C1DataFilterのデータソースをDataGridViewに割り当てられたデータソースと等しく設定します
c1DataFilter1.DataSource = _carsTable;
//フィルタ値が変更された後、自動的にフィルタをDataSourceに適用します
c1DataFilter1.AutoApply = true;
//DataFilterのヘッダーを表示します
c1DataFilter1.ShowHeader = true;
//DataFilterコントロールのヘッダーテキストを設定します
c1DataFilter1.HeaderText = "Refine by";
//DataFilterとその要素をスタイルします
c1DataFilter1.Styles.Common.Border = new C1.Framework.Thickness(5);
c1DataFilter1.Styles.Header.Font = new Font(FontFamily.GenericSansSerif, 9f, FontStyle.Bold);
c1DataFilter1.Styles.FilterCaption.BackColor = Color.LightCyan;
}
private void C1DataFilter1_FilterAutoGenerating(object sender, C1.DataFilter.FilterAutoGeneratingEventArgs e)
{
switch (e.Property.Name)
{
//Brandフィルタのチェックリスト項目を設定します
case "Brand":
var brandFilter = (C1.Win.DataFilter.ChecklistFilter) e.Filter;
brandFilter.ItemsSource = _carsTable;
brandFilter.ValueMemberPath = "Brand";
brandFilter.SelectAll();
break;
//Categoryフィルタのチェックリスト項目を設定します
case "Category":
var categoryFilter = (C1.Win.DataFilter.ChecklistFilter) e.Filter;
categoryFilter.ItemsSource = _carsTable;
categoryFilter.ValueMemberPath = "Category";
categoryFilter.SelectAll();
break;
//Priceフィルタの最小値・最大値を設定します
case "Price":
var priceFilter = (C1.Win.DataFilter.RangeFilter) e.Filter;
priceFilter.Maximum = _carsTable.AsEnumerable().Max(x = >x.Field < double > ("Price"));
priceFilter.Minimum = _carsTable.AsEnumerable().Min(x = >x.Field < double > ("Price"));
priceFilter.Increment = 1000;
priceFilter.Digits = 0;
break;
//他のフィルタの作成をキャンセルします
default:
e.Cancel = true;
break;
}
}
private void SaveFilterExpression()
{
//現在のフィルタ式をXMLファイルに保存します
c1DataFilter1.SaveFilterExpression("SavedFilters.xml");
}
private void LoadFilterExpression()
{
//現在のフィルター式をXMLファイルからロードします
c1DataFilter1.LoadFilterExpression("SavedFilters.xml");
}
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
C1.Framework.XViewHost
C1.Win.DataFilter.C1DataFilter