What problem does it solve? WPF codebases drift into tangled code-behind, hand-rolled INotifyPropertyChanged boilerplate, deadlocking async commands, and untestable ViewModels. This Skill encodes a strict MVVM discipline so XAML, code-behind, and ViewModels stay on the correct side of the View-knows-ViewModel dependency line. ## Core Features & Use Cases - Strict MVVM architecture: One-way View-to-ViewModel dependency, CommunityToolkit.Mvvm source generators ([ObservableProperty], [RelayCommand]) instead of hand-written INotifyPropertyChanged, and commands instead of Click handlers. - Async command and threading rules: CancellationToken-carrying AsyncRelayCommands with local fault handling, IProgress<T> for off-UI-thread work, and list virtualization guidance for large collections. - Deep reference files: Dedicated references for the interaction layer (routed events, behaviors, clipboard payloads), advanced MVVM mechanics (dependency properties, weak events, validation), styling/theming with the .NET 9 Fluent ThemeMode, threading and lists, XAML style, FlaUI UI automation, and .NET Framework 4.8 constraints. - Use Case: Before editing a WPF screen's XAML or ViewModel, load this Skill so generated code uses source-generated observable properties, explicit binding modes, generic-host composition in App.xaml.cs, and resx-based localization instead of literal strings. ## Quick Start Load the dotnet-wpf skill before editing any XAML, code-behind, or ViewModel in this WPF project and refactor the OrderList screen to strict MVVM.