DataFilter for WinForms
C1DataFilter クラス
メンバ 

C1.Win.DataFilter.4.5.2 アセンブリ > C1.Win.DataFilter 名前空間 : C1DataFilter クラス
C1DataFilter を使用して、条件に基づいてデータをフィルタ処理できます。任意のデータ対応コントロールに連結することができ、また複数条件のフィルタ処理を適用することができます。
オブジェクト モデル
C1DataFilter クラス
シンタックス
'宣言
 
Public Class C1DataFilter 
   Inherits C1.Framework.XViewHost
public class C1DataFilter : C1.Framework.XViewHost 
解説
C1DataFilterクラスを使用すると、下記のオプションを使用してDataFilterコントロールの動作を定義できます。
使用例

private void InitializeDataFilter()
{

 //DataFilterコントロールを初期化します
 c1DataFilter1 = new C1DataFilter();

 c1DataFilter1.Dock = DockStyle.Fill;

 splitContainer1.Panel1.Controls.Add(c1DataFilter1);

 //DataGridViewのデータソースを設定します
 dataGridView1.DataSource = _carsTable;

 //AutoGenerateFilterstrueに設定すると、フィルタが自動的に生成します
 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

参照

C1DataFilter メンバ
C1.Win.DataFilter 名前空間