1012 B
1012 B
- ViewModels inherit
BaseViewModeland expose properties viaSetProperty(ref _field, value)so thatCommandManager.InvalidateRequerySuggestedis automatically called on change. - User actions are bound to
ICommandproperties implemented as lazy-initializedRelayCommand/RelayCommandAsyncfields, with optionalcanExecutepredicates passed at construction. - ClassicUO command-line flags are declared declaratively on
ClassicOptionsproperties using[ClassicOption(...)]attributes rather than hard-coded string literals, and consumed uniformly via reflection inReadClassicOptions/BuildClassicOptions. - Per-user configuration is serialized/deserialized manually against
Newtonsoft.Json.Linq.JObject/JArrayinstead of using POCO serialization, with explicit field-by-field read/write paths inMainViewModel.Closingand the constructor. - Singleton services (e.g.
ShardManager) use double-checked locking with a static_lockobject exposed through aGetInstance()factory method.