avalonia-viewmodels-zafiro
Zafiro パターンを使用したリアクティブな Avalonia UI アプリケーションの構築
保守性の高い Avalonia アプリケーションを作成するには、一貫性のある ViewModel パターンとナビゲーション構造が必要です。このスキルは、堅牢な UI 開発のための実証済みの ReactiveUI および Zafiro ツールキットパターンを提供します。
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
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ûrStatic 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.
Score de qualité
Ce que vous pouvez construire
モジュール式セクションを備えたデスクトップアプリケーション
[Section] 属性と INavigator を使用して、Wallet、Browse、Settings などの自動的に検出されるセクションを備えたウォレットアプリケーションを構築し、ビュー間のシームレスなナビゲーションを実現します。
複雑なマルチステップワークフローの実装
WizardBuilder を使用して WhenValid および NextCommand ルールでステップを定義し、検証、進捗追跡、条件付きナビゲーションを備えたプロジェクトセットアップウィザードを作成します。
リアクティブコマンドインフラストラクチャのセットアップ
HandleErrorsWith によるエラー処理、CompositeDisposable による自動 dispose 管理、WhenAnyValue を使用したリアクティブプロパティ監視を備えた堅牢なコマンドパターンを確立します。
Essayez ces prompts
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
これらのパターンを使用するにはどの依存関係が必要ですか?
自動セクション検出はどのように機能しますか?
Zafiro ツールキット全体なしでこれらのパターンを使用できますか?
ウィザードステップで検証をどのように処理しますか?
標準の ICommand に対する IEnhancedCommand の目的は何ですか?
これらのパターンで作成された ViewModel をどのようにテストしますか?
Détails du développeur
Auteur
sickn33Licence
MIT
Dépôt
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/avalonia-viewmodels-zafiroRéf
main
Structure de fichiers