avalonia-viewmodels-zafiro
بناء تطبيقات واجهة مستخدم Avalonia تفاعلية باستخدام أنماط Zafiro
يتطلب إنشاء تطبيقات Avalonia قابلة للصيانة أنماط ViewModel وهياكل تنقل متسقة. توفر هذه المهارة أنماطًا مثبتة لأدوات ReactiveUI و Zafiro لتطوير واجهات مستخدم قوية.
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「avalonia-viewmodels-zafiro」を使用しています。 أنشئ ViewModel لشاشة تسجيل الدخول مع حقلي اسم المستخدم وكلمة المرور
期待される結果:
فئة جزئية LoginViewModel ترث من ReactiveObject مع سمات [Reactive] لخصائص Username و Password، و LoginCommand تم إنشاؤه عبر ReactiveCommand.CreateFromTask مع التحقق من الصحة، وتنفيذ IDisposable مناسب مع CompositeDisposable للتنظيف.
「avalonia-viewmodels-zafiro」を使用しています。 كيف أنتقل من HomeViewModel إلى DetailsViewModel عندما ينقر المستخدم على عنصر؟
期待される結果:
احقن INavigator في مُنشئ HomeViewModel، ثم استدعِ await navigator.Navigate(() => new DetailsViewModel(selectedItem) في معالج التحديد الخاص بك. يقوم DataTypeViewLocator تلقائيًا بحل DetailsView المقابل.
セキュリティ監査
安全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.
品質スコア
作れるもの
تطبيق سطح مكتب مع أقسام وحدات نمطية
بناء تطبيق محفظة مع أقsections مكتشفة تلقائيًا مثل Wallet و Browse و Settings باستخدام سمات [Section] و INavigator للتنقل السلس بين العروض.
تطبيق سير عمل متعدد الخطوات معقد
إنشاء معالجات إعداد المشروع مع التحقق من الصحة وتتبع التقدم والتنقل الشرطي باستخدام WizardBuilder لتحديد الخطوات مع قواعد WhenValid و NextCommand.
إعداد بنية الأوامر التفاعلية
إنشاء أنماط أوامر قوية مع معالجة الأخطاء عبر HandleErrorsWith، وإدارة المُصرفات التلقائية مع CompositeDisposable، ومراقبة خصائص تفاعلية باستخدام WhenAnyValue.
これらのプロンプトを試す
أنشئ ViewModel ReactiveUI لشاشة ملف تعريف المستخدم مع خصائص Name و Email و IsBusy. ضمّن أمر Save يتحقق من تنسيق البريد الإلكتروني قبل التنفيذ. استخدم سمات [Reactive] والتعامل المناسب مع المُصرفات.
أظهر لي كيفية تطبيق تنقل شريط جانبي مع ثلاثة أقسام: Dashboard و Reports و Settings. استخدم السمة [Section] مع أيقونات FontAwesome ووضح كيفية التبديل بين الأقسام باستخدام IShellViewModel.
ابنِ معالجًا لإنشاء مشروع جديد بأربع خطوات: Project Info و Select Template و Configure Settings و Review. يجب التحقق من صحة كل خطوة قبل المتابعة. استخدم WizardBuilder مع قواعد WhenValid ووضح كيفية التعامل مع النتيجة النهائية.
وضح إنشاء IEnhancedCommand لمزامنة البيانات يُظهر التقدم ويتعامل مع الأخطاء عبر NotificationService ويُصرف الاشتراكات بشكل صحيح. ضمّن دعم الإلغاء ومنطق تمكين/تعطيل تفاعلي بناءً على حالة الاتصال.
ベストプラクティス
- استخدم دائمًا .DisposeWith(disposables) على الاشتراكات والأوامر لمنع تسرب الذاكرة في التدفقات التفاعلية
- علّم section ViewModels بالسمة [Section] للتسجيل التلقائي بدلاً من التوصيل اليدوي في CompositionRoot
- استخدم امتداد HandleErrorsWith لتوجيه أخطاء الأوامر إلى NotificationService للحصول على ملاحظات مستخدم متسقة
回避
- لا تقم بإنشاء مثيلات ViewModels يدويًا باستخدام 'new' خارج طرق المصنع - استخدم حقن التبعيات عبر CompositionRoot
- تجنب الاشتراك في الملاحظات دون إضافتها إلى CompositeDisposable - هذا يسبب تسرب الذاكرة
- لا تقم بحظر العمليات غير المتزامنة في تنفيذ الأوامر - استخدم دائمًا CreateFromTask واستدعيات await للتنقل
よくある質問
ما التبعيات التي أحتاجها لاستخدام هذه الأنماط؟
كيف يعمل الاكتشاف التلقائي للأقسام؟
هل يمكنني استخدام هذه الأنماط بدون مجموعة أدوات Zafiro الكاملة؟
كيف أتعامل مع التحقق من الصحة في خطوات المعالج؟
ما الغرض من IEnhancedCommand مقارنة بـ ICommand القياسي؟
كيف أختبر ViewModels التي تم إنشاؤها بهذه الأنماط؟
開発者の詳細
作成者
sickn33ライセンス
MIT
リポジトリ
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/avalonia-viewmodels-zafiro参照
main
ファイル構成