public AppSettingsViewModel(AppSettings settings) { Settings = settings; Settings.Changed += Settings_Changed; LoadPaths = new ObservableCollection<ExplorerItem>(); InitLoadPaths(); SaveToDiskCommand = new AsyncCommand( (o) => Settings.WriteToDisc(), (o) => Settings.HasUnsavedChanges, (t) => { if(t.IsFaulted) Application.Current.Dispatcher.Invoke(() => new ExceptionWindow(t.Exception).Show()); }); Settings.Changed += (s, a) => ((AsyncCommand)SaveToDiskCommand).RaiseCanExecuteChanged(); OpenFileLocationCommand = new RelayCommand(o => System.Diagnostics.Process.Start("explorer.exe", $"/select, {Settings.FullFilePath}")); }
private void InitSettings() { if(!File.Exists(AppSettingsFileName)) { var set = new AppSettings(AppSettingsFileName); set.WriteToDisc(); } ApplicationSettings = SettingsFile.ReadSettingFile<AppSettings>(AppSettingsFileName); ApplicationSettings.Changed += (sender, args) => { if(args.ChangedPropertyName == nameof(AppSettings.Volume)) { SongPlayer.Volume = ((AppSettings)sender).Volume; } }; }