Files
T
Beyhan Oğur d5f52cc3d3 first commit
2026-09-03 04:45:36 +03:00

681 B

  • Each view/window follows the .axaml + .axaml.cs split where the code-behind constructor simply calls InitializeComponent() and leaves logic to the ViewModel.
  • Cross-thread UI marshalling goes exclusively through SEngine.Dispatcher.Invoke / InvokeAsync rather than direct Dispatcher usage in business code.
  • User-facing dialogs are surfaced to the core via IUIInvoker.Invoke/InvokeDialog<T> by type-name reflection instead of direct window construction from non-UI assemblies.
  • Persistent settings are implemented by having ViewModels implement ISettingProvider and registering handlers on Options.SaveEvent/LoadEvent to iterate BaseViewModel.Instances.