syncfusion-maui-listview について
Syncfusion .NET MAUI SfListView の実装、カスタマイズ、最適化を支援するドキュメントスキルです。レイアウト、データ操作、インタラクション、仮想化を通じたコレクション表示を扱います。
主な機能
- 01リニアおよびグリッドレイアウト
- 02並べ替え、フィルター、グループ化
- 03単一・複数選択とジェスチャー
- 04スワイプ操作とドラッグ&ドロップ
- 05追加読み込み、引き下げ更新、仮想化
活用シーン
- 01製品や連絡先の一覧表示
- 02リストデータの絞り込みとグループ化
- 03スワイプ操作や項目の並べ替え
- 04大規模コレクションの効率的な表示
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ maui-ui-components-skills --skill syncfusion-maui-listviewインストール後、Claude Code で/syncfusion-maui-listviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/data-operations.mdevents-performance.mdgetting-started.mdheaders-footers.mdinteractive-features.mditem-customization.mdlayouts.mdload-more-pull-refresh.mdmvvm-patterns.mdrtl.mdscrolling.mdselection.md詳細
.NET MAUI ListView の実装
Syncfusion .NET MAUI ListView(SfListView)コンポーネントを実装、カスタマイズ、最適化するための包括的なスキルです。ListView は、レイアウト、並べ替え、フィルター処理、グループ化、選択、豊富なカスタマイズオプションをサポートし、データのコレクションを表示します。
このスキルを使用する場面
次のような場合に、このスキルを使用してください。
- コレクションの表示: 任意のデータソース(ObservableCollection、List など)からデータ項目の一覧を表示する
- データ操作: リスト項目の並べ替え、フィルター処理、グループ化を実装する
- カスタムレイアウト: 1 列または複数列のリニアレイアウトやグリッドレイアウトを作成する
- ユーザー操作: 項目の選択(単一/複数)、タップ、長押し、ダブルタップを有効にする
- 高度な機能: スワイプ操作、ドラッグ&ドロップによる並べ替え、プルして更新、または追加読み込みを実装する
- カスタマイズ: カスタム項目テンプレート、ヘッダー、フッター、グループヘッダーを設計する
- パフォーマンス: 仮想化を使用して、大規模なデータセットのリスト描画を最適化する
- MVVM パターン: データバインディング、コマンド、ViewModel を使用して ListView を実装する
一般的なシナリオ:
- 商品カタログ、連絡先リスト、受信トレイ/メール一覧
- ニュースフィード、ソーシャルメディアの投稿、フォトギャラリー
- 設定ページ、ナビゲーションメニュー、ファイルブラウザー
- タスクリスト、注文履歴、取引記録
- 同じ種類の項目からなる、スクロール可能なあらゆるコレクション
コンポーネントの概要
SfListView は、高性能で豊富な機能を備えたリストコントロールです。次の機能を提供します。
- 組み込みまたはカスタムのテンプレートを使用してデータ項目を描画する
- 最適化されたビュー再利用方式により、スムーズなスクロールをサポートする
- 方向を指定できるリニアレイアウトとグリッドレイアウトを提供する
- データ操作(並べ替え、フィルター処理、グループ化)を再バインドせずに実行できる
- 複数の選択モードとジェスチャーを提供する
- 固定ヘッダー、フッター、グループヘッダーを含む
- 項目のスワイプ操作とドラッグ&ドロップをサポートする
- 仮想化により大規模なデータセットを効率よく処理する
ドキュメントとナビゲーションガイド
はじめに
📄 参照先: references/getting-started.md
- NuGet パッケージの設定(Syncfusion.Maui.ListView)
- MauiProgram.cs でのハンドラーの登録
- 最初の ListView の作成
- データモデルと ViewModel
- 基本的なデータバインディングと項目テンプレート
レイアウトオプション
📄 参照先: references/layouts.md
- リニアレイアウト(縦/横)
- SpanCount を使用したグリッドレイアウト
- レイアウトの動的な変更
- 画面サイズに応じた列数の調整
- レイアウトのベストプラクティス
データ操作
📄 参照先: references/data-operations.md
- SortDescriptor による並べ替え(昇順/降順、カスタム比較演算子)
- 述語と RefreshFilter によるフィルター処理
- GroupDescriptor と固定グループヘッダーによるグループ化
- 複数の操作の組み合わせ
- パフォーマンスに関する考慮事項
選択
📄 参照先: references/selection.md
- 選択モード(None、Single、SingleDeselect、Multiple、Extended)
- 選択ジェスチャー(Tap、DoubleTap、Hold)
- SelectedItem および SelectedItems プロパティ
- 選択イベント(SelectionChanging、SelectionChanged)
- プログラムによる選択
- 選択時の外観のカスタマイズ
項目のカスタマイズ
📄 参照先: references/item-customization.md
- ItemTemplate によるカスタム項目テンプレート
- 動的なテンプレートに対応する DataTemplateSelector
- 項目のサイズ設定(固定、自動調整、動的)
- 項目の外観(境界線、間隔、視覚効果)
- リキッドガラス効果
- 高度なカスタマイズ手法
ヘッダーとフッター
📄 参照先: references/headers-footers.md
- HeaderTemplate と FooterTemplate の追加
- 固定ヘッダーとフッター(IsStickyHeader、IsStickyFooter)
- GroupHeaderTemplate によるグループヘッダー
- ヘッダー/フッターコンテンツの動的な設定
- 一般的なヘッダー/フッターのパターン
インタラクティブ機能
📄 参照: references/interactive-features.md
- スワイプ操作(StartSwipeTemplate、EndSwipeTemplate)
- スワイプイベントと一般的なパターン(削除、アーカイブ)
- ドラッグ&ドロップ(DragStartMode、ドラッグ/ドロップイベント)
- リスト内での項目の並べ替え
- リスト間のドラッグ&ドロップ
さらに読み込む/引っ張って更新
📄 参照: references/load-more-pull-refresh.md
- さらに読み込むためのオプション(自動/手動)
- LoadMoreCommand と LoadMoreTemplate
- 引っ張って更新
- 大規模なデータセット向けのベストプラクティス
スクロール
📄 参照: references/scrolling.md
- スクロールメソッド(ScrollTo、ScrollToRowIndex)
- ScrollBarVisibility プロパティ
- プログラムによるスクロール
- 仮想化を使用しない ListView
- スクロールのパフォーマンス最適化
右から左(RTL)のサポート
📄 参照: references/rtl.md
- 右から左(RTL)のレイアウトのサポート
- FlowDirection プロパティ
- RTL レイアウトのテスト
MVVM パターン
📄 参照: references/mvvm-patterns.md
- ListView を使った MVVM アーキテクチャ
- INotifyPropertyChanged と ObservableCollection
- コマンド(TapCommand、LongPressCommand)
- データバインディングのパターン
- MVVM でのユーザー操作の処理
- MVVM の完全な例
イベントとパフォーマンス
📄 参照: references/events-performance.md
- ライフサイクルイベント(Loaded)
- インタラクションイベント(ItemTapped、ItemDoubleTapped、ItemLongPress)
- ItemAppearing イベントと ItemDisappearing イベント
- パフォーマンス最適化の手法
- 一括更新に BeginInit/EndInit を使用する
- RefreshView メソッド
- パフォーマンスの問題のトラブルシューティング