avalonia-viewmodels-zafiro
Entwickeln Sie reaktive Avalonia-UI-Anwendungen mit Zafiro-Mustern
Die Erstellung wartbarer Avalonia-Anwendungen erfordert konsistente ViewModel-Muster und Navigationsstrukturen. Diese Fähigkeit bietet bewährte ReactiveUI- und Zafiro-Toolkit-Muster für eine robuste UI-Entwicklung.
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「avalonia-viewmodels-zafiro」を使用しています。 Generieren Sie ein ViewModel für einen Anmeldebildschirm mit Benutzernamen- und Passwortfeldern
期待される結果:
Eine partielle Klasse LoginViewModel, die von ReactiveObject erbt, mit [Reactive]-Attributen für Username- und Password-Eigenschaften, einem LoginCommand, das über ReactiveCommand.CreateFromTask mit Validierung erstellt wurde, und ordnungsgemäßer IDisposable-Implementierung mit CompositeDisposable für die Bereinigung.
「avalonia-viewmodels-zafiro」を使用しています。 Wie navigiere ich von HomeViewModel zu DetailsViewModel, wenn ein Benutzer auf ein Element klickt?
期待される結果:
Injizieren Sie INavigator in den HomeViewModel-Konstruktor und rufen Sie dann in Ihrem Auswahlhandler await navigator.Navigate(() => new DetailsViewModel(selectedItem)) auf. Der DataTypeViewLocator löst automatisch die entsprechende DetailsView auf.
セキュリティ監査
安全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.
品質スコア
作れるもの
Desktop-Anwendung mit modularen Abschnitten
Erstellen Sie eine Wallet-Anwendung mit automatisch entdeckten Abschnitten wie Wallet, Browse und Settings unter Verwendung von [Section]-Attributen und INavigator für nahtlose Navigation zwischen Ansichten.
Implementierung komplexer Multi-Schritt-Workflows
Erstellen Sie Projekt-Einrichtungsassistenten mit Validierung, Fortschrittsverfolgung und bedingter Navigation unter Verwendung von WizardBuilder, um Schritte mit WhenValid- und NextCommand-Regeln zu definieren.
Einrichtung reaktiver Befehlsinfrastruktur
Etablieren Sie robuste Befehlsmuster mit Fehlerbehandlung über HandleErrorsWith, automatischer CompositeDisposable-Verwaltung und reaktiver Eigenschaftsbeobachtung mit WhenAnyValue.
これらのプロンプトを試す
Erstellen Sie ein ReactiveUI-ViewModel für einen Benutzerprofilbildschirm mit Name-, E-Mail- und IsBusy-Eigenschaften. Fügen Sie einen Save-Befehl hinzu, der das E-Mail-Format vor der Ausführung validiert. Verwenden Sie [Reactive]-Attribute und ordnungsgemäße Disposable-Handhabung.
Zeigen Sie mir, wie man eine Seitenleisten-Navigation mit drei Abschnitten implementiert: Dashboard, Reports und Settings. Verwenden Sie das [Section]-Attribut mit FontAwesome-Icons und demonstrieren Sie, wie man mit IShellViewModel zwischen Abschnitten wechselt.
Erstellen Sie einen Assistenten zum Erstellen eines neuen Projekts mit vier Schritten: Projektinfo, Vorlage auswählen, Einstellungen konfigurieren und Überprüfung. Jeder Schritt muss vor dem Fortfahren validiert werden. Verwenden Sie WizardBuilder mit WhenValid-Regeln und zeigen Sie, wie das Endergebnis verarbeitet wird.
Demonstrieren Sie die Erstellung eines IEnhancedCommand für die Datensynchronisation, die Fortschritt anzeigt, Fehler über NotificationService behandelt und Subscriptions ordnungsgemäß verwirft. Fügen Sie Abbruchunterstützung und reaktive Aktivierungs-/Deaktivierungslogik basierend auf dem Verbindungszustand hinzu.
ベストプラクティス
- Verwenden Sie immer .DisposeWith(disposables) bei Subscriptions und Befehlen, um Speicherlecks in reaktiven Streams zu verhindern
- Markieren Sie Abschnitts-ViewModels mit dem [Section]-Attribut für automatische Registrierung anstatt manueller Verdrahtung in CompositionRoot
- Verwenden Sie die HandleErrorsWith-Erweiterung, um Befehlsfehler an NotificationService für konsistentes Benutzerfeedback zu leiten
回避
- Instanziieren Sie ViewModels außerhalb von Factory-Methoden nicht manuell mit 'new' - verwenden Sie Dependency Injection durch CompositionRoot
- Vermeiden Sie das Abonnieren von Observables ohne Hinzufügen zu CompositeDisposable - dies verursacht Speicherlecks
- Blockieren Sie niemals asynchrone Vorgänge in der Befehlsausführung - verwenden Sie immer CreateFromTask und await-Navigationsaufrufe
よくある質問
Welche Abhängigkeiten benötige ich für diese Muster?
Wie funktioniert die automatische Abschnittserkennung?
Kann ich diese Muster ohne das vollständige Zafiro-Toolkit verwenden?
Wie behandele ich die Validierung in Assistentenschritten?
Was ist der Zweck von IEnhancedCommand gegenüber Standard-ICommand?
Wie teste ich ViewModels, die mit diesen Mustern erstellt wurden?
開発者の詳細
作成者
sickn33ライセンス
MIT
リポジトリ
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/avalonia-viewmodels-zafiro参照
main
ファイル構成