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 INotifyPropertyChanged and commands via ICommand.
  • Use CommunityToolkit.Mvvm for ObservableObject, [ObservableProperty], [RelayCommand] source generators. No hand-rolled boilerplate.
  • Command orchestration beyond [RelayCommand] - undo/redo stacks, command queues, snapshots - routes to personal-csharp-design-patterns (Command, Memento, Observer in plain C#).
  • Navigation goes through an INavigationService (ViewModel-side); never new 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.
Installs
3
First Seen
2 days ago
personal-dotnet-wpf — envoydev/agents-stack