syncfusion-maui-dataform について
Syncfusion の .NET MAUI DataForm の実装ガイドです。データ入力・編集画面を作る開発者向けに、エディターの自動生成、検証、レイアウト、グループ化、多言語対応を扱います。
主な機能
- 01データモデルからのエディター自動生成
- 02組み込み・カスタム検証
- 03リニアおよびグリッドレイアウト
- 04フィールドのグループ化と折りたたみ
- 05多言語対応と RTL サポート
活用シーン
- 01登録・プロフィールフォームの作成
- 02業務データ入力画面の構築
- 03設定フォームの整理
- 04RTL 言語向けフォームのローカライズ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ maui-ui-components-skills --skill syncfusion-maui-dataformインストール後、Claude Code で/syncfusion-maui-dataformを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/built-in-editors.mdcustom-editors.mddata-annotations.mddataform-settings.mdediting.mdfloating-label-layout.mdgetting-started.mdgrouping.mdlayout.mdlocalization.mdright-to-left.mdvalidation.md詳細
.NET MAUI DataForm(SfDataForm)の実装
Syncfusion .NET MAUI DataForm(SfDataForm)は、データオブジェクトからデータ入力フォームを自動生成する、包括的なフォームビルダーコントロールです。組み込みエディター、検証、柔軟なレイアウト、豊富なカスタマイズオプションを備え、プロフェッショナルなデータ収集・編集インターフェースを作成できます。
このスキルを使用する場面
次のような場合に、このスキルを使用してください。
- データ入力フォームを作成する(ログイン、登録、連絡先、従業員フォームなど)
- データオブジェクトを編集する(モデルクラスからフォームを自動生成)
- ユーザー入力を検証する(組み込みまたはカスタムの検証ルールを使用)
- フォームエディターをカスタマイズする(テキスト、数値、日付、ドロップダウンなど)
- フォームをレイアウトする(線形またはグリッド形式)
- フォームフィールドをグループ化する(折りたたみ可能なセクションを使用)
- フォームをローカライズする(複数の言語に対応)
- RTL レイアウトに対応する(右から左へ記述する言語向け)
- フローティングラベルデザインを実装する(モダンな UI 向け)
- フォームのコミットを処理する(LostFocus、PropertyChanged、Manual などの異なるモードを使用)
一般的なシナリオ:
- ユーザー登録とプロフィール編集
- ビジネスデータ入力(注文、請求書、連絡先)
- 設定画面
- アンケートフォーム
- 検索・フィルターフォーム
コンポーネントの概要
主な機能:
- 自動生成: データオブジェクトのプロパティからフォームエディターを自動生成します
- 10 種類以上の組み込みエディター: テキスト、数値、日付、時刻、ドロップダウン、チェックボックス、スイッチ、マスク入力など
- 検証: データアノテーションとカスタム検証を組み込みでサポートします
- 柔軟なレイアウト: グループ化に対応した線形またはグリッドレイアウト
- カスタマイズ: カスタムエディター、スタイル、動作の変更
- ローカライズ: リソースファイルを使用した多言語サポート
- アクセシビリティ: RTL サポートとスクリーンリーダーへの対応
ドキュメントとナビゲーションガイド
はじめに
📄 読む: references/getting-started.md
DataForm のセットアップと使用方法の基本を学びます。
- Visual Studio、VS Code、Rider 向けの NuGet パッケージのインストール
- MauiProgram.cs でのハンドラー登録
- データオブジェクトとビューモデルの作成
- DataObject プロパティのバインド
- 最初の DataForm の実装
- StackLayout コンテナー内での DataForm のサイズ設定
- 基本的な構成とセットアップ
読む場面: DataForm を使って新しいプロジェクトを始める場合、またはインストール方法を確認する必要がある場合。
組み込みエディター
📄 読む: references/built-in-editors.md
10 種類以上の組み込みエディターと自動生成について説明します。
- テキストエディター(Text、Multiline、Password)
- 数値エディター(SfNumericEntry)
- 日付・時刻エディター(DatePicker、TimePicker)
- ブール値エディター(CheckBox、Switch)
- 選択エディター(Picker、ComboBox、AutoComplete、RadioGroup)
- 電話番号やクレジットカード向けの MaskedText エディター
- データ型に基づくエディター生成ルール
- DataFormItem の種類と入力コントロールの対応関係
- エディター選択に使用する DataType 属性
読む場面: 各プロパティの型に対してどのエディターが生成されるかを確認したい場合、または利用可能なエディターの種類を知りたい場合。
カスタムエディター
📄 読む: references/custom-editors.md
カスタムエディターの構成と作成方法を学びます。
- エディターの明示的な構成(エディターの種類の切り替え)
- プロパティのエディターの種類の変更
- カスタムエディタービューの実装
- ItemManager のカスタマイズ
- InitializeDataEditor メソッドのオーバーライド
- カスタムコントロールの統合
- エディタープロパティのマッピングとバインド
- 高度なエディターカスタマイズのシナリオ
読む場面: プロパティの既定のエディターを変更する場合、または完全にカスタムのエディターコントロールを実装する場合。
検証
📄 参照: references/validation.md
包括的なデータ検証を実装します。
- 組み込みの検証属性(Required、StringLength、Range、EmailAddress など)
- データ注釈による検証
- 検証モード(LostFocus、PropertyChanged、Manual)
- 日付検証用の DataFormDateRange 属性
- カスタム検証ロジックの実装
- 検証エラーの表示とスタイル設定
- Validate() メソッドによるプログラムからの検証
- ValidationLabel のカスタマイズ
- リアルタイム検証と送信時検証
参照するタイミング: フォーム入力を検証したり、エラーメッセージを表示したり、カスタム検証ルールを実装したりする必要がある場合。
データ注釈
📄 参照: references/data-annotations.md
属性を使って DataForm の動作を宣言的に設定します。
- 表示属性(Name、Prompt、GroupName、AutoGenerateField)
- フィールドの順序を指定する Order 属性
- 書式設定属性(DisplayFormat)
- ReadOnly 属性と Editable 属性
- エディターの種類を選択する DataType 属性
- 表示制御属性
- カスタム属性の実装
- 属性の組み合わせと優先順位のルール
参照するタイミング: モデルのプロパティに属性を設定して DataForm を構成したい場合や、フィールドの生成を制御する必要がある場合。
レイアウト
📄 参照: references/layout.md
柔軟なレイアウトオプションを使ってフォームフィールドを整理します。
- 線形レイアウト(既定では1行に1フィールド)
- ColumnCount プロパティを使ったグリッドレイアウト
- ラベルの配置(Left、Top)
- カスタムの列順序を指定する ItemsOrderInRow
- 行と列のスパン設定
- レイアウトのカスタマイズ方法
- レスポンシブレイアウトの戦略
- グループごとのレイアウト設定
参照するタイミング: フォームフィールドを複数列に配置したい場合や、フォームのレイアウト構造をカスタマイズする必要がある場合。
グループ化
📄 参照: references/grouping.md
関連するフォームフィールドをまとめます。
- フィールドをグループ化する GroupName 属性
- グループヘッダーのカスタマイズ
- 折りたたみ可能/展開可能なグループ
- グループごとのレイアウト(線形またはグリッド)
- グループの順序と外観
- 動的なグループを作成する GenerateDataFormItem イベント
- ネストしたグループ化の戦略
参照するタイミング: フォームフィールドを論理的なセクションや折りたたみ可能なグループに整理する必要がある場合。
DataForm の設定
📄 参照: references/dataform-settings.md
DataForm のグローバルプロパティと外観を設定します。
- AutoGenerateItems プロパティ(自動生成または手動生成)
- 手動で項目を作成するための Items コレクション
- ラベル設定(幅、位置、スタイル)
- エディターの高さと間隔の設定
- パディングとマージンのプロパティ
- 背景と視覚的な外観
- グローバルな動作に対する ItemManager のカスタマイズ
- テーマとの統合
参照するタイミング: DataForm コントロール全体の外観や動作をカスタマイズする必要がある場合。
編集の動作
📄 参照: references/editing.md
データを確定するタイミングと方法を制御します。
- 確定モード(LostFocus、PropertyChanged、Manual)
- CommitMode プロパティの設定
- Commit() メソッドによるプログラムからの確定
- 読み取り専用フィールドと無効化されたエディター
- ValueChanged イベントの処理
- プログラムからのデータオブジェクトの更新
- 双方向データバインディングの動作
- フォームのリセットとキャンセル操作
参照するタイミング: フォームの変更をデータオブジェクトに保存するタイミングを制御したい場合や、保存/キャンセルのロジックを実装する必要がある場合。
フローティングラベルレイアウト
📄 参照: references/floating-label-layout.md
モダンなフローティングラベルのデザインを実装します。
- フローティングラベル機能の概要
- エディターでのフローティングラベルの有効化
- ラベルのアニメーション動作(フォーカス時に浮き上がる)
- Float モードの設定オプション
- フローティングラベルのスタイル設定
- フローティングラベルの UX に関するベストプラクティス
- さまざまなエディターの種類との互換性
参照するタイミング: モダンな外観にするため、Material Design スタイルのフローティングラベルを実装したい場合。
ローカライズ
📄 参照: references/localization.md
フォームを複数の言語に対応させます:
- ローカライズの概要と設定
- リソースファイル(.resx)の設定
- カルチャ固有の文字列とメッセージ
- ローカライズされたエラーメッセージ
- ローカライズされたラベルとプロンプト
- 実行時の言語切り替え
- プラットフォーム固有のローカライズに関する考慮事項
参照するタイミング: 複数の言語でフォームを作成する場合や、世界各地のユーザーに対応する場合。
右から左への表示のサポート
📄 参照: references/right-to-left.md
アラビア語、ヘブライ語などのRTL言語向けにレイアウトを実装します:
- RTLサポートの概要
- FlowDirection を使用したRTLレイアウトの有効化
- エディターとコントロールのRTL動作
- ラベルと検証メッセージのRTL対応
- RTLに関する文化的な考慮事項
- RTLレイアウトのテストとデバッグ
参照するタイミング: アラビア語やヘブライ語など、右から左に記述する言語に対応する場合。