diff --git a/VPet.Solution/Models/SettingEditor/ModSettingModel.cs b/VPet.Solution/Models/SettingEditor/ModSettingModel.cs index a79e3aa..28fd91b 100644 --- a/VPet.Solution/Models/SettingEditor/ModSettingModel.cs +++ b/VPet.Solution/Models/SettingEditor/ModSettingModel.cs @@ -1,7 +1,7 @@ -using LinePutScript; -using LinePutScript.Localization.WPF; -using System.Collections.ObjectModel; +using System.Collections.ObjectModel; using System.Windows; +using LinePutScript; +using LinePutScript.Localization.WPF; namespace VPet.Solution.Models.SettingEditor; @@ -94,10 +94,10 @@ public class ModSettingModel : ObservableClass setting.Remove(ModLineName); setting.Remove(PassModLineName); setting.Remove(MsgModLineName); - if (Mods.Any() is false) - return; foreach (var mod in Mods) { + if (mod.IsEnabled is false) + continue; setting[ModLineName].Add(new Sub(mod.ID.ToLower())); setting[MsgModLineName].Add(new Sub(mod.ID, "True")); if (mod.IsPass) diff --git a/VPet.Solution/ViewModels/SettingEditor/ModSettingPageVM.cs b/VPet.Solution/ViewModels/SettingEditor/ModSettingPageVM.cs index 665de9b..ea87400 100644 --- a/VPet.Solution/ViewModels/SettingEditor/ModSettingPageVM.cs +++ b/VPet.Solution/ViewModels/SettingEditor/ModSettingPageVM.cs @@ -1,5 +1,5 @@ -using LinePutScript.Localization.WPF; -using System.Windows; +using System.Windows; +using LinePutScript.Localization.WPF; using VPet.Solution.Models.SettingEditor; namespace VPet.Solution.ViewModels.SettingEditor; @@ -37,16 +37,16 @@ public class ModSettingPageVM : ObservableClass #endregion #region CurrentModMoel - private ModModel _currentModModel; - public ModModel CurrentModMoel + private ModModel _currentModModel = null!; + public ModModel CurrentModModel { get => _currentModModel; set { if (_currentModModel is not null) _currentModModel.PropertyChangingX -= CurrentModModel_PropertyChangingX; - SetProperty(ref _currentModModel, value); - if (value is not null) + SetProperty(ref _currentModModel!, value); + if (_currentModModel is not null) _currentModModel.PropertyChangingX += CurrentModModel_PropertyChangingX; } } @@ -117,7 +117,7 @@ public class ModSettingPageVM : ObservableClass for (var i = 0; i < ModSetting.Mods.Count; i++) { if (ModSetting.Mods[i].IsEnabled is null) - ModSetting.Mods.RemoveAt(i); + ModSetting.Mods.RemoveAt(i--); } SearchMod = string.Empty; } @@ -158,8 +158,8 @@ public class ModSettingPageVM : ObservableClass if (string.IsNullOrWhiteSpace(name)) ShowMods = ModSetting.Mods; else - ShowMods = ModSetting.Mods.Where( - s => s.Name.Contains(SearchMod, StringComparison.OrdinalIgnoreCase) + ShowMods = ModSetting.Mods.Where(s => + s.Name.Contains(SearchMod, StringComparison.OrdinalIgnoreCase) ); } } diff --git a/VPet.Solution/Views/SettingEditor/ModSettingPage.xaml b/VPet.Solution/Views/SettingEditor/ModSettingPage.xaml index 9e35474..c672ef3 100644 --- a/VPet.Solution/Views/SettingEditor/ModSettingPage.xaml +++ b/VPet.Solution/Views/SettingEditor/ModSettingPage.xaml @@ -38,7 +38,7 @@ AutoGenerateColumns="False" CanUserAddRows="False" ItemsSource="{Binding ShowMods}" - SelectedItem="{Binding CurrentModMoel}"> + SelectedItem="{Binding CurrentModModel}">