mcpField
S
syncfusion-blazor-multicolumn-combobox

syncfusion-blazor-multicolumn-combobox

github.com/syncfusionデザイン・UI4347 回インストール1 週間前に更新
リポジトリ

syncfusion-blazor-multicolumn-combobox について

Blazor で Syncfusion MultiColumn ComboBox を実装するためのスキルです。構造化データを扱うドロップダウン向けに、複数列のフィルタリング、データ連携、選択、大規模データ対応を説明します。

主な機能

  1. 01複数列のドロップダウン表示
  2. 02ローカルおよびリモートデータ連携
  3. 03複数列のフィルタリングと検索
  4. 04値バインド、グループ化、選択
  5. 05ページングと仮想化
  6. 06フォーム検証とキーボード操作対応

活用シーン

  1. 01注文 ID、顧客、金額を基に注文を選択
  2. 02氏名、メール、ID で従業員を検索
  3. 03商品カタログでカテゴリ、価格、在庫を比較
  4. 04国、州、タイムゾーンで場所を選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-multicolumn-combobox

インストール後、Claude Code で/syncfusion-blazor-multicolumn-comboboxを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
accessibility-localization.md
advanced-patterns.md
columns-and-templates.md
data-binding.md
features-and-settings.md
filtering-and-search.md
getting-started.md
selection-and-values.md
styling-and-appearance.md

詳細

Syncfusion Blazor MultiColumn ComboBox の実装

MultiColumn ComboBox コンポーネントは、フィルタリング、選択、ページング、仮想化、グループ化、カスタマイズなどの機能を標準搭載した、複数列でデータを表示するドロップダウンコントロールです。従来の ComboBox の機能と、データグリッド形式のレイアウトを組み合わせています。

このスキルを使用する場面

次のような場合に、このスキルを使用します。

  • 複数の列で構造化データをドロップダウンに表示する
  • 列データを対象にしたフィルタリングと検索機能を実装する
  • ローカルまたはリモートのデータソース(Web API、OData)にバインドする
  • 柔軟なバインドオプションで値の選択に対応する
  • 大規模なデータセットにページング、仮想化、またはグループ化を追加する
  • フォームで外観、スタイル、検証をカスタマイズする
  • アクセシビリティに対応し、キーボードで操作できるドロップダウンを実装する
  • サーバーサイドまたは Web アプリに統合する MultiColumn ComboBox コンポーネントを作成する

コンポーネントの概要

MultiColumn ComboBox には、次の機能があります。

  • 複雑なデータ構造を表示する複数列のレイアウト
  • 高度なフィルタリング(ローカル/リモート、大文字と小文字の区別、複数列)
  • データバインディング(ローカル配列、Web API、OData、カスタムアダプター)
  • 値のバインディングに対応した選択モード(単純型、タプル、複雑なオブジェクト)
  • パフォーマンス機能(ページング、仮想化、オフラインモード)
  • カスタマイズ(テンプレート、スタイル、外観)
  • 検証とフローティングラベルに対応したフォーム連携
  • WCAG 準拠とキーボード操作に対応したアクセシビリティ

ドキュメントのナビゲーションガイド

はじめに

📄 参照先: references/getting-started.md

  • インストールとパッケージの設定
  • MultiColumn ComboBox の基本的な実装
  • テンプレートの構造
  • 最初の MultiColumn ComboBox の作成
列とデータの表示

📄 参照先: references/columns-and-templates.md

  • 列の定義と設定
  • 列のテンプレートと書式設定
  • 列ヘッダーとテキストの配置
  • グリッドの設定(行の高さ、交互の行)
データバインディングのオプション

📄 参照先: references/data-binding.md

  • ローカルデータのバインディング(配列、コレクション)
  • Web API と OData のバインディング
  • アクションイベント(ActionBegin、ActionComplete、ActionFailure)
  • Observable コレクションと動的バインディング
フィルタリングと検索

📄 参照先: references/filtering-and-search.md

  • フィルターの種類とカスタムフィルタリングロジック
  • 複数列のフィルタリング手法
  • 大文字と小文字を区別するフィルタリング
  • リモートデータのフィルタリング
選択と値のバインディング

📄 参照先: references/selection-and-values.md

  • 単一および複数の値のバインディング
  • 値を選択するパターン
  • カスタム値と列挙型のバインディング
  • タプルと複雑なオブジェクトの操作
高度な機能と設定

📄 参照先: references/features-and-settings.md

  • パフォーマンス向上のためのページングと仮想化
  • 列によるデータのグループ化
  • ポップアップの設定(サイズ、位置、サイズ変更)
  • プレースホルダーとフローティングラベル
スタイルと外観

📄 参照先: references/styling-and-appearance.md

  • CSS クラスとカスタムスタイル
  • プレースホルダーとフローティングラベルのカスタマイズ
  • 外観の調整(交互の行、グリッド線、テキストの折り返し)
  • テーマとの統合
アクセシビリティとローカライズ

📄 参照先: references/accessibility-localization.md

  • WCAG 準拠とキーボードナビゲーション
  • ARIA 属性とスクリーンリーダーのサポート
  • フォーム検証との統合
  • 多言語アプリ向けのローカライズ
高度なパターンと統合

📄 参照先: references/advanced-patterns.md

  • サーバーサイドおよび Web アプリとの統合
  • カスタムデータアダプター
  • 列挙型と動的オブジェクトのバインディング
  • オフラインモードとパフォーマンスの最適化

クイックスタートの例

最小限の MultiColumn ComboBox の実装例を以下に示します。

@using Syncfusion.Blazor.MultiColumnComboBox

<SfMultiColumnComboBox TValue="string" TItem="OrderData" 
                       DataSource="@OrderList" 
                       TextField="CustomerName"
                       ValueField="OrderID"
                       Placeholder="Select an order">
    <MultiColumnComboboxColumns>
        <MultiColumnComboboxColumn Field="OrderID" Header="Order ID" Width="100px"></MultiColumnComboboxColumn>
        <MultiColumnComboboxColumn Field="CustomerName" Header="Customer" Width="150px"></MultiColumnComboboxColumn>
        <MultiColumnComboboxColumn Field="TotalAmount" Header="Amount" Width="100px" Format="C2"></MultiColumnComboboxColumn>
    </MultiColumnComboboxColumns>
</SfMultiColumnComboBox>

@code {
    private List<OrderData> OrderList = new();

    protected override void OnInitialized()
    {
        OrderList = new()
        {
            new OrderData { OrderID = "1001", CustomerName = "Alice Johnson", TotalAmount = 150.50m },
            new OrderData { OrderID = "1002", CustomerName = "Bob Smith", TotalAmount = 280.75m },
            new OrderData { OrderID = "1003", CustomerName = "Carol White", TotalAmount = 420.00m }
        };
    }

    public class OrderData
    {
        public string OrderID { get; set; }
        public string CustomerName { get; set; }
        public decimal TotalAmount { get; set; }
    }
}

よく使われるパターン

1. ユーザー入力のフィルタリング

ユーザーが検索ボックスに入力すると、ComboBox が項目をフィルタリングします。AllowFiltering プロパティを使用し、FilterType でカスタマイズします。

<SfMultiColumnComboBox TValue="string" TItem="ProductData" 
                       DataSource="@Products"
                       AllowFiltering="true"
                       FilterType="FilterType.Contains">
    <MultiColumnComboboxColumns>
        
    </MultiColumnComboboxColumns>
</SfMultiColumnComboBox>
2. リモートデータの読み込み

データアダプターとともに Query プロパティを使用して、Web API または OData サービスにバインドします。

<SfMultiColumnComboBox TValue="string" TItem="OrderData"
                       Query="@DataQuery">
    <MultiColumnComboboxColumns>
        
    </MultiColumnComboboxColumns>
</SfMultiColumnComboBox>

@code {
    private Query DataQuery = new Query().From("Orders").Select(new List<string> { "OrderID", "CustomerName" });
}
3. 選択変更の処理

ユーザーが項目を選択したときに応答するには、ValueChange イベントを使用します。

<SfMultiColumnComboBox TValue="string" TItem="OrderData"
                       ValueChange="@OnValueChange">
    <MultiColumnComboboxColumns>
        
    </MultiColumnComboboxColumns>
</SfMultiColumnComboBox>

@code {
    private void OnValueChange(ValueChangeEventArgs<string, OrderData> args)
    {
        // args.Value = selected value
        // args.ItemData = selected item object
    }
}
4. 大規模なデータセットのページング

ページングを有効にすると、表示する行数を制限し、必要に応じてさらに読み込めます。

<SfMultiColumnComboBox TValue="string" TItem="OrderData"
                       AllowPaging="true"
                       PageSize="10">
    <MultiColumnComboboxColumns>
        
    </MultiColumnComboboxColumns>
</SfMultiColumnComboBox>
5. フォームの検証

EditForm と統合して、検証や必須フィールドのチェックを行います。

<EditForm Model="@FormModel">
    <SfMultiColumnComboBox TValue="string" TItem="OrderData"
                           @bind-Value="@FormModel.SelectedOrderID"
                           DataSource="@Orders">
        <MultiColumnComboboxColumns>
            
        </MultiColumnComboboxColumns>
    </SfMultiColumnComboBox>
    
    <ValidationMessage For="@(() => FormModel.SelectedOrderID)" />
</EditForm>

主なプロパティ

TextField| 表示テキストのフィールドをマッピングします |TextField="Name"| |ValueField| 値のフィールドをマッピングします |ValueField="ID"` |

プロパティ説明例
DataSourceバインドするデータコレクションDataSource="@Products"
TextField表示テキストのフィールドをマッピングしますTextField="Name"
ValueField値のフィールドをマッピングしますValueField="ID"
Value / @bind-Value選択された値を取得/設定します@bind-Value="@SelectedID"
AllowFiltering検索/フィルタリング機能を有効にしますAllowFiltering="true"
FilterTypeフィルターの一致方法FilterType="FilterType.Contains"
Placeholder入力欄のヒントテキストPlaceholder="Select..."
AllowPagingページングを有効にしますAllowPaging="true"
PageSize1ページあたりの項目数(ページング使用時)PageSize="10"
GroupByFieldフィールドごとに項目をグループ化しますGroupByField="Category"
Queryリモートソース向けのデータクエリQuery="@new Query().From('Orders')"
Disabled / ReadOnlyコントロールの状態`Dis

よくあるユースケース

  1. 注文選択フォーム - 注文 ID、顧客、金額を含むグリッド状のドロップダウンから注文を選択します
  2. 従業員検索 - 複数の列を対象に、名前、メールアドレス、または ID で従業員を検索します
  3. 製品カタログ - 複数列のドロップダウンに、カテゴリ、価格、在庫とともに製品を表示します
  4. 場所セレクター - 国、州、タイムゾーンの情報をもとに、都市/地域を選択します
  5. アカウント選択 - 番号、種類、残高を一つのドロップダウンに表示して、アカウントを選択します

次のステップ

まず はじめに を参照して、MultiColumn ComboBox をインストールし、最初のコンポーネントを作成します。その後、ニーズに応じて他のガイドを確認してください。各リファレンスには、完全なコード例とエッジケースが記載されています。

ご質問はありますか? 具体的なユースケースに該当するリファレンスガイドをご確認ください。

コメント