Compétences avalonia-viewmodels-zafiro
📦

avalonia-viewmodels-zafiro

Sûr

Zafiro パターンを使用したリアクティブな Avalonia UI アプリケーションの構築

保守性の高い Avalonia アプリケーションを作成するには、一貫性のある ViewModel パターンとナビゲーション構造が必要です。このスキルは、堅牢な UI 開発のための実証済みの ReactiveUI および Zafiro ツールキットパターンを提供します。

Prend en charge: Claude Codex Code(CC)
🥉 74 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "avalonia-viewmodels-zafiro". ログイン画面の ViewModel を生成する(ユーザー名とパスワードフィールド付き)

Résultat attendu:

Username と Password プロパティの [Reactive] 属性を持つ ReactiveObject から継承された部分クラス LoginViewModel。検証付きの ReactiveCommand.CreateFromTask を使用した LoginCommand、およびクリーンアップ用の CompositeDisposable を持つ適切な IDisposable 実装。

Utilisation de "avalonia-viewmodels-zafiro". ユーザーがアイテムをクリックしたときに HomeViewModel から DetailsViewModel に移動するにはどうすればよいですか?

Résultat attendu:

HomeViewModel コンストラクターに INavigator を注入し、選択ハンドラーで await navigator.Navigate(() => new DetailsViewModel(selectedItem)) を呼び出します。DataTypeViewLocator が対応する DetailsView を自動的に解決します。

Audit de sécurité

Sûr
v1 • 2/24/2026

Static analyzer flagged 79 potential issues (71 external_commands, 8 blocker patterns). All findings are FALSE POSITIVES. The detected 'backtick execution' patterns are markdown code fence markers (```) and C# attribute syntax ([Section], [Reactive]). The 'blocker' patterns are documentation callouts ([!TIP], [!IMPORTANT]). This skill contains only documentation markdown files with C# code examples - no executable code or security risks exist.

5
Fichiers analysés
282
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
50
Communauté
100
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

モジュール式セクションを備えたデスクトップアプリケーション

[Section] 属性と INavigator を使用して、Wallet、Browse、Settings などの自動的に検出されるセクションを備えたウォレットアプリケーションを構築し、ビュー間のシームレスなナビゲーションを実現します。

複雑なマルチステップワークフローの実装

WizardBuilder を使用して WhenValid および NextCommand ルールでステップを定義し、検証、進捗追跡、条件付きナビゲーションを備えたプロジェクトセットアップウィザードを作成します。

リアクティブコマンドインフラストラクチャのセットアップ

HandleErrorsWith によるエラー処理、CompositeDisposable による自動 dispose 管理、WhenAnyValue を使用したリアクティブプロパティ監視を備えた堅牢なコマンドパターンを確立します。

Essayez ces prompts

基本的な ViewModel 作成
Name、Email、および IsBusy プロパティを持つユーザープロファイル画面の ReactiveUI ViewModel を作成します。実行前にメール形式を検証する Save コマンドを含めてください。[Reactive] 属性と適切な dispose 処理を使用します。
セクションベースのナビゲーション設定
Dashboard、Reports、Settings の 3 つのセクションを持つサイドバーナビゲーションを実装する方法を示してください。FontAwesome アイコンを持つ [Section] 属性を使用し、IShellViewModel を使用してセクションを切り替える方法を示します。
検証付きマルチステップウィザード
プロジェクト情報、テンプレートの選択、設定の構成、および確認の 4 つのステップを持つ新しいプロジェクトを作成するためのウィザードを構築します。各ステップは進行前に検証する必要があります。WhenValid ルールを持つ WizardBuilder を使用し、最終結果を処理する方法を示します。
エラー処理を備えた拡張コマンド
進捗状況を表示し、NotificationService を介してエラーを処理し、購読を適切に dispose するデータ同期用の IEnhancedCommand の作成を実演してください。キャンセルサポートと接続状態に基づくリアクティブな有効/無効ロジックを含めます。

Bonnes pratiques

  • メモリリークを防ぐために、購読とコマンドで必ず .DisposeWith(disposables) を使用する
  • CompositionRoot で手動ワイヤリングする代わりに、[Section] 属性でセクション ViewModel をマークして自動登録を行う
  • HandleErrorsWith 拡張機能を使用して、一貫したユーザーフィードバックのためにコマンドエラーを NotificationService にチャネル化する

Éviter

  • ファクトリーメソッド外では ViewModel を 'new' で手動インスタンス化しない - CompositionRoot を介した依存関係注入を使用する
  • CompositeDisposable に追加せずに Observable を購読しない - メモリリークの原因となる
  • コマンド実行で非同期操作をブロックしない - CreateFromTask を使用し、ナビゲーション呼び出しを await する

Foire aux questions

これらのパターンを使用するにはどの依存関係が必要ですか?
Avalonia UI、ReactiveUI、ReactiveUI.SourceGenerators、および Zafiro ツールキットが必要です。NuGet パッケージを介してプロジェクトファイルに追加してください。
自動セクション検出はどのように機能しますか?
[Section] 属性は ViewModel をセクションとしてマークします。Zafiro の AddSectionsFromAttributes は起動時にアセンブリをスキャンし、マークされた型を依存関係注入コンテナーに登録します。
Zafiro ツールキット全体なしでこれらのパターンを使用できますか?
はい、コア ReactiveUI パターンは独立して動作します。ただし、SlimWizard、IEnhancedCommand、およびセクション検出には Zafiro コンポーネントが必要です。
ウィザードステップで検証をどのように処理しますか?
WhenAnyValue を使用してプロパティ変更を観察し、有効性フラグを設定することで、ステップ ViewModel で検証を実装します。WizardBuilder で .WhenValid() を使用して、検証がパスするまでナビゲーションをブロックします。
標準の ICommand に対する IEnhancedCommand の目的は何ですか?
IEnhancedCommand は UI バインディングのための Name および Text メタデータ、および NotificationService との統合された進捗報告とエラー処理機能を ICommand に追加します。
これらのパターンで作成された ViewModel をどのようにテストしますか?
ViewModel は注入可能な依存関係を持つ通常のクラスです。モックには moq または NSubstitute を使用し、ReactiveUI.Testing を使用するか、プロパティ変更を直接観察することでリアクティブプロパティをテストします。

Détails du développeur

Structure de fichiers