avalonia-viewmodels-zafiro
Créer des applications Avalonia UI réactives avec les modèles Zafiro
La création d'applications Avalonia maintenables nécessite des modèles ViewModel cohérents et des structures de navigation. Cette compétence fournit des modèles éprouvés ReactiveUI et Zafiro toolkit pour un développement UI robuste.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“avalonia-viewmodels-zafiro”。 Générer un ViewModel pour un écran de connexion avec les champs nom d'utilisateur et mot de passe
预期结果:
Une classe partielle LoginViewModel héritant de ReactiveObject avec les attributs [Reactive] pour les propriétés Username et Password, une LoginCommand créée via ReactiveCommand.CreateFromTask avec validation, et une implémentation IDisposable appropriée avec CompositeDisposable pour le nettoyage.
正在使用“avalonia-viewmodels-zafiro”。 Comment naviguer de HomeViewModel vers DetailsViewModel lorsqu'un utilisateur clique sur un élément ?
预期结果:
Injecter INavigator dans le constructeur de HomeViewModel, puis appeler await navigator.Navigate(() => new DetailsViewModel(selectedItem)) dans votre gestionnaire de sélection. Le DataTypeViewResolver résout automatiquement la vue DetailsView correspondante.
安全审计
安全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.
质量评分
你能构建什么
Application de bureau avec sections modulaires
Construire une application de portefeuille avec des sections automatiquement découvertes comme Wallet, Browse et Settings en utilisant les attributs [Section] et INavigator pour une navigation fluide entre les vues.
Implémentation de flux de travail multi-étapes complexes
Créer des assistants de configuration de projet avec validation, suivi de progression et navigation conditionnelle en utilisant WizardBuilder pour définir les étapes avec les règles WhenValid et NextCommand.
Configuration de l'infrastructure de commandes réactives
Établir des modèles de commandes robustes avec gestion des erreurs via HandleErrorsWith, gestion automatique des disposables avec CompositeDisposable, et observation réactive des propriétés avec WhenAnyValue.
试试这些提示
Créer un ViewModel ReactiveUI pour un écran de profil utilisateur avec les propriétés Name, Email et IsBusy. Inclure une commande Save qui valide le format de l'exécution avant l'exécution. Utiliser les attributs [Reactive] et une gestion appropriée des disposables.
Montrez-moi comment implémenter une navigation latérale avec trois sections : Dashboard, Reports et Settings. Utiliser l'attribut [Section] avec des icônes FontAwesome et démontrer comment basculer entre les sections en utilisant IShellViewModel.
Créer un assistant pour un nouveau projet avec quatre étapes : Project Info, Select Template, Configure Settings et Review. Chaque étape doit valider avant de procéder. Utiliser WizardBuilder avec les règles WhenValid et montrer comment gérer le résultat final.
Démontrer la création d'un IEnhancedCommand pour la synchronisation de données qui affiche la progression, gère les erreurs via NotificationService et dispose correctement des abonnements. Inclure le support de l'annulation et la logique réactive d'activation/désactivation basée sur l'état de connexion.
最佳实践
- Toujours utiliser .DisposeWith(disposables) sur les abonnements et les commandes pour éviter les fuites de mémoire dans les flux réactifs
- Marquer les ViewModels de section avec l'attribut [Section] pour l'enregistrement automatique au lieu du câblage manuel dans CompositionRoot
- Utiliser l'extension HandleErrorsWith pour canaliser les erreurs de commande vers NotificationService pour un retour utilisateur cohérent
避免
- Ne pas instancier manuellement les ViewModels avec 'new' en dehors des méthodes factory - utiliser l'injection de dépendances via CompositionRoot
- Éviter de s'abonner aux observables sans les ajouter à CompositeDisposable - cela provoque des fuites de mémoire
- Ne jamais bloquer les opérations asynchrones dans l'exécution des commandes - toujours utiliser CreateFromTask et await pour les appels de navigation
常见问题
Quelles dépendances dois-je utiliser pour ces modèles ?
Comment fonctionne la découverte automatique des sections ?
Puis-je utiliser ces modèles sans le Zafiro toolkit complet ?
Comment gérer la validation dans les étapes de l'assistant ?
Quel est le but de IEnhancedCommand par rapport à ICommand standard ?
Comment tester les ViewModels créés avec ces modèles ?
开发者详情
作者
sickn33许可证
MIT
仓库
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/avalonia-viewmodels-zafiro引用
main
文件结构