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;
                }
            };
        }