personal-dotnet-wpf
Installation
SKILL.md
WPF Conventions
MVVM
- Strict MVVM: View (XAML + code-behind for view-only logic), ViewModel (state + commands), Model (domain).
- View knows ViewModel; ViewModel does not know View. No
Window,UserControl,Dispatcher, or visual-tree types in ViewModels. - ViewModels expose data via properties implementing
INotifyPropertyChangedand commands viaICommand. - Use
CommunityToolkit.MvvmforObservableObject,[ObservableProperty],[RelayCommand]source generators. No hand-rolled boilerplate. - Command orchestration beyond
[RelayCommand]- undo/redo stacks, command queues, snapshots - routes topersonal-csharp-design-patterns(Command, Memento, Observer in plain C#). - Navigation goes through an
INavigationService(ViewModel-side); nevernew Window().Show()from a ViewModel.
Naming
- View:
OrderListView.xaml/OrderListView.xaml.cs. - ViewModel:
OrderListViewModel.cs. - View and ViewModel paired by convention, located in the same feature folder.