DataTable _carsTable;
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(
"provider=microsoft.jet.oledb.4.0;Data Source=" +
Environment.GetFolderPath(Environment.SpecialFolder.Personal) +
"\\ComponentOne Samples\\Common\\C1NWind.mdb");
_carsTable = new DataTable();
new OleDbDataAdapter("Select * from Cars", con).Fill(_carsTable);
c1DataFilter1.DataSource = GetCars().ToList();
c1FlexGrid1.DataSource = GetCars().ToList();
//カスタムモデルフィルタを初期化します
//MultiSelectコントロールを使用して自動車のモデルをフィルタできます
var modelFilter = new ModelFilter()
{
HeaderText = "Model",
PropertyName = "Model",
};
//MultiSelectコントロールのデータを設定します
modelFilter.SetTagList(GetCars().ToList());
//MultiSelectコントロールをカスタマイズして、コントロール
//のヘッダーに5個以下の項目を表示します
modelFilter.MultiSelect.MaxHeaderItems = 5;
//FilterCollectionにカスタムフィルタを追加します
c1DataFilter1.Filters.Add(modelFilter);
//FilterChangedイベントに購読します
c1DataFilter1.FilterChanged += C1DataFilter1_FilterChanged;
}
private void C1DataFilter1_FilterChanged(object sender, EventArgs e)
{
//データを更新します
c1FlexGrid1.DataSource = c1DataFilter1.View.Cast<Car>().ToList();
}
public IEnumerable<Car> GetCars()
{
var carsTable = _carsTable;
foreach (DataRow row in carsTable.Rows)
{
yield return new Car
{
Brand = row.Field<string>("Brand"),
Category = row.Field<string>("Category"),
Description = row.Field<string>("Description"),
Liter = row.Field<double>("Liter"),
Model = row.Field<string>("Model"),
Picture = row.Field<byte[]>("Picture"),
Price = row.Field<double>("Price"),
TransmissAutomatic = row.Field<string>("TransmissAutomatic"),
ID = row.Field<int>("ID")
};
}
}