From c24055f446f3444cc132391a05075ef3cdc82945 Mon Sep 17 00:00:00 2001 From: Hakoyu Date: Sat, 9 Sep 2023 21:22:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20SimpleObservable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VPet.ModMaker/Models/FoodModel.cs | 4 +- VPet.ModMaker/Models/I18nModel.cs | 4 +- VPet.ModMaker/Models/ModInfoModel.cs | 4 +- VPet.ModMaker/Models/ModMaker.cs | 10 +- VPet.ModMaker/Models/ObservableRange.cs | 2 +- VPet.ModMaker/Models/PetModel.cs | 6 +- VPet.ModMaker/Models/SelectTextModel.cs | 4 +- .../SimpleObservable/ObservableCommand.cs | 72 ++++++++++- .../SimpleObservable/ObservableCommandT.cs | 49 +++++++- .../SimpleObservable/ObservableValue.cs | 118 +++++++++++++++--- .../ModEdit/ClickTextEdit/ClickTextPageVM.cs | 6 +- .../ViewModels/ModEdit/FoodEdit/FoodPageVM.cs | 6 +- .../ModEdit/LowTextEdit/LowTextPageVM.cs | 8 +- .../ViewModels/ModEdit/ModEditWindowVM.cs | 6 +- .../ModEdit/PetEdit/PetEditWindowVM.cs | 2 +- .../ViewModels/ModEdit/PetEdit/PetPageVM.cs | 6 +- .../SelectTextEdit/SelectTextPageVM.cs | 6 +- .../ModEdit/WorkEdit/WorkEditWindowVM.cs | 2 +- .../ViewModels/ModEdit/WorkEdit/WorkPageVM.cs | 10 +- VPet.ModMaker/ViewModels/ModMakerWindowVM.cs | 6 +- 20 files changed, 266 insertions(+), 65 deletions(-) diff --git a/VPet.ModMaker/Models/FoodModel.cs b/VPet.ModMaker/Models/FoodModel.cs index 59b959c..fe34d89 100644 --- a/VPet.ModMaker/Models/FoodModel.cs +++ b/VPet.ModMaker/Models/FoodModel.cs @@ -33,9 +33,9 @@ public class FoodModel : I18nModel public FoodModel() { DescriptionId.Value = $"{Id.Value}_{nameof(DescriptionId)}"; - Id.ValueChanged += (v) => + Id.ValueChanged += (o, n) => { - DescriptionId.Value = $"{v}_{nameof(DescriptionId)}"; + DescriptionId.Value = $"{n}_{nameof(DescriptionId)}"; }; } diff --git a/VPet.ModMaker/Models/I18nModel.cs b/VPet.ModMaker/Models/I18nModel.cs index f62bd70..9964387 100644 --- a/VPet.ModMaker/Models/I18nModel.cs +++ b/VPet.ModMaker/Models/I18nModel.cs @@ -28,9 +28,9 @@ public class I18nModel CurrentI18nData.Value = I18nDatas[I18nHelper.Current.CultureName.Value]; } - private void LangChanged(string value) + private void LangChanged(string oldValue, string newValue) { - if (I18nDatas.TryGetValue(value, out var result)) + if (I18nDatas.TryGetValue(newValue, out var result)) CurrentI18nData.Value = result; } diff --git a/VPet.ModMaker/Models/ModInfoModel.cs b/VPet.ModMaker/Models/ModInfoModel.cs index 7fd242c..daef52c 100644 --- a/VPet.ModMaker/Models/ModInfoModel.cs +++ b/VPet.ModMaker/Models/ModInfoModel.cs @@ -39,9 +39,9 @@ public class ModInfoModel : I18nModel public ModInfoModel() { DescriptionId.Value = $"{Id.Value}_{nameof(DescriptionId)}"; - Id.ValueChanged += (v) => + Id.ValueChanged += (o, n) => { - DescriptionId.Value = $"{v}_{nameof(DescriptionId)}"; + DescriptionId.Value = $"{n}_{nameof(DescriptionId)}"; }; } diff --git a/VPet.ModMaker/Models/ModMaker.cs b/VPet.ModMaker/Models/ModMaker.cs index 84fe804..f951278 100644 --- a/VPet.ModMaker/Models/ModMaker.cs +++ b/VPet.ModMaker/Models/ModMaker.cs @@ -38,6 +38,7 @@ public class ModMaker : MainPlugin Setting(); }; modset.Items.Add(menuset); + Application.Current.Resources.MergedDictionaries.Add(new ModMakerStyles()); } public override void Setting() @@ -45,14 +46,19 @@ public class ModMaker : MainPlugin if (Maker == null) { // 载入ModMaker资源 - Application.Current.Resources.MergedDictionaries.Add(new ModMakerStyles()); Maker = new ModMakerWindow(); - Maker.ModMaker = this; + //Maker.ModMaker = this; Maker.Show(); + Maker.Closed += Maker_Closed; } else { Maker.Topmost = true; } } + + private void Maker_Closed(object sender, EventArgs e) + { + Maker = null; + } } diff --git a/VPet.ModMaker/Models/ObservableRange.cs b/VPet.ModMaker/Models/ObservableRange.cs index 9844d99..acaa0a1 100644 --- a/VPet.ModMaker/Models/ObservableRange.cs +++ b/VPet.ModMaker/Models/ObservableRange.cs @@ -15,7 +15,7 @@ public class ObservableRange Max.ValueChanged += ValueChanged; } - private void ValueChanged(T value) + private void ValueChanged(T oldValue, T newValue) { Info.Value = $"({Min.Value}, {Max.Value})"; } diff --git a/VPet.ModMaker/Models/PetModel.cs b/VPet.ModMaker/Models/PetModel.cs index 8c931a0..0131f0a 100644 --- a/VPet.ModMaker/Models/PetModel.cs +++ b/VPet.ModMaker/Models/PetModel.cs @@ -26,10 +26,10 @@ public class PetModel : I18nModel { PetNameId.Value = $"{Id.Value}_{nameof(PetNameId)}"; DescriptionId.Value = $"{Id.Value}_{nameof(DescriptionId)}"; - Id.ValueChanged += (v) => + Id.ValueChanged += (o, n) => { - PetNameId.Value = $"{v}_{nameof(PetNameId)}"; - DescriptionId.Value = $"{v}_{nameof(DescriptionId)}"; + PetNameId.Value = $"{n}_{nameof(PetNameId)}"; + DescriptionId.Value = $"{n}_{nameof(DescriptionId)}"; }; } diff --git a/VPet.ModMaker/Models/SelectTextModel.cs b/VPet.ModMaker/Models/SelectTextModel.cs index 875b6df..ac6233f 100644 --- a/VPet.ModMaker/Models/SelectTextModel.cs +++ b/VPet.ModMaker/Models/SelectTextModel.cs @@ -46,9 +46,9 @@ public class SelectTextModel : I18nModel public SelectTextModel() { ChooseId.Value = $"{Id.Value}_{nameof(ChooseId)}"; - Id.ValueChanged += (v) => + Id.ValueChanged += (o, n) => { - ChooseId.Value = $"{v}_{nameof(ChooseId)}"; + ChooseId.Value = $"{n}_{nameof(ChooseId)}"; }; } diff --git a/VPet.ModMaker/SimpleObservable/ObservableCommand.cs b/VPet.ModMaker/SimpleObservable/ObservableCommand.cs index 3a4a9e3..7fdfd20 100644 --- a/VPet.ModMaker/SimpleObservable/ObservableCommand.cs +++ b/VPet.ModMaker/SimpleObservable/ObservableCommand.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; @@ -11,6 +12,9 @@ namespace HKW.HKWViewModels.SimpleObservable; /// /// 可观察命令 /// +[DebuggerDisplay( + "CanExecute = {CanExecuteProperty.Value}, EventCount = {ExecuteEvent.GetInvocationList().Length}, AsyncEventCount = {AsyncExecuteEvent.GetInvocationList().Length}" +)] public class ObservableCommand : ICommand { /// @@ -21,6 +25,7 @@ public class ObservableCommand : ICommand /// /// 等待异步执行完成 /// + [DebuggerBrowsable(DebuggerBrowsableState.Never)] private readonly ObservableValue r_waiting = new(false); /// @@ -30,14 +35,12 @@ public class ObservableCommand : ICommand r_waiting.PropertyChanged += InvokeCanExecuteChanged; } - private void InvokeCanExecuteChanged( - object? sender, - System.ComponentModel.PropertyChangedEventArgs e - ) + private void InvokeCanExecuteChanged(object? sender, PropertyChangedEventArgs e) { CanExecuteChanged?.Invoke(sender, e); } + #region ICommand /// /// 能否被执行 /// @@ -75,7 +78,54 @@ public class ObservableCommand : ICommand await asyncEvent.Invoke(); r_waiting.Value = false; } + #endregion + #region NotifyReceiver + /// + /// 添加通知属性改变后接收器 + /// + /// 添加的接口触发后会执行 + /// + /// 示例: + /// value = new(); + /// ObservableCommand command = new(); + /// command.AddNotifyReceiver(value); + /// command.NotifyCanExecuteReceived += (ref bool canExecute) => + /// { + /// canExecute = false; // trigger this + /// }; + /// value.Value = "A"; // execute this + /// // result: value.Value == "A" , command.CanExecuteProperty == false + /// ]]> + /// + /// + /// 通知属性改变后接口 + public void AddNotifyReceiver(params INotifyPropertyChanged[] notifies) + { + foreach (var notify in notifies) + notify.PropertyChanged += Notify_PropertyChanged; + } + + /// + /// 删除通知属性改变后接收器 + /// + /// 通知属性改变后接口 + public void RemoveNotifyReceiver(params INotifyPropertyChanged[] notifies) + { + foreach (var notify in notifies) + notify.PropertyChanged -= Notify_PropertyChanged; + } + + private void Notify_PropertyChanged(object? sender, PropertyChangedEventArgs e) + { + var temp = CanExecuteProperty.Value; + NotifyCanExecuteReceived?.Invoke(ref temp); + CanExecuteProperty.Value = temp; + } + #endregion + + #region Event /// /// 能否执行属性改变后事件 /// @@ -91,6 +141,13 @@ public class ObservableCommand : ICommand /// public event AsyncExecuteHandler? AsyncExecuteEvent; + /// + /// 可执行通知接收器事件 + /// + public event NotifyReceivedHandler? NotifyCanExecuteReceived; + #endregion + + #region Delegate /// /// 执行 /// @@ -101,4 +158,11 @@ public class ObservableCommand : ICommand /// /// public delegate Task AsyncExecuteHandler(); + + /// + /// 通知接收器 + /// + /// 引用值 + public delegate void NotifyReceivedHandler(ref bool value); + #endregion } diff --git a/VPet.ModMaker/SimpleObservable/ObservableCommandT.cs b/VPet.ModMaker/SimpleObservable/ObservableCommandT.cs index db83d80..10dc7fb 100644 --- a/VPet.ModMaker/SimpleObservable/ObservableCommandT.cs +++ b/VPet.ModMaker/SimpleObservable/ObservableCommandT.cs @@ -1,5 +1,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -11,6 +13,9 @@ namespace HKW.HKWViewModels.SimpleObservable; /// 带参数的可观察命令 /// /// 参数类型 +[DebuggerDisplay( + "CanExecute = {CanExecuteProperty.Value}, EventCount = {ExecuteEvent.GetInvocationList().Length}, AsyncEventCount = {AsyncExecuteEvent.GetInvocationList().Length}" +)] public class ObservableCommand : ICommand where T : notnull { @@ -18,6 +23,7 @@ public class ObservableCommand : ICommand public ObservableValue CanExecuteProperty { get; } = new(true); /// + [DebuggerBrowsable(DebuggerBrowsableState.Never)] private readonly ObservableValue r_waiting = new(false); /// @@ -27,14 +33,12 @@ public class ObservableCommand : ICommand r_waiting.PropertyChanged += InvokeCanExecuteChanged; } - private void InvokeCanExecuteChanged( - object? sender, - System.ComponentModel.PropertyChangedEventArgs e - ) + private void InvokeCanExecuteChanged(object? sender, PropertyChangedEventArgs e) { CanExecuteChanged?.Invoke(sender, e); } + #region ICommand /// public bool CanExecute(object? parameter) { @@ -63,7 +67,32 @@ public class ObservableCommand : ICommand await asyncEvent.Invoke(parameter); r_waiting.Value = false; } + #endregion + #region NotifyReceiver + /// + public void AddNotifyReceiver(params INotifyPropertyChanged[] notifies) + { + foreach (var notify in notifies) + notify.PropertyChanged += Notify_PropertyChanged; + } + + /// + public void RemoveNotifyReceiver(params INotifyPropertyChanged[] notifies) + { + foreach (var notify in notifies) + notify.PropertyChanged -= Notify_PropertyChanged; + } + + private void Notify_PropertyChanged(object? sender, PropertyChangedEventArgs e) + { + var temp = CanExecuteProperty.Value; + NotifyCanExecuteReceived?.Invoke(ref temp); + CanExecuteProperty.Value = temp; + } + #endregion + + #region Event /// public event EventHandler? CanExecuteChanged; @@ -73,6 +102,11 @@ public class ObservableCommand : ICommand /// public event AsyncExecuteHandler? AsyncExecuteEvent; + /// + public event NotifyReceivedHandler? NotifyCanExecuteReceived; + #endregion + + #region Delegate /// /// 值 public delegate void ExecuteHandler(T value); @@ -80,4 +114,11 @@ public class ObservableCommand : ICommand /// /// 值 public delegate Task AsyncExecuteHandler(T value); + + /// + /// 通知接收器 + /// + /// 引用值 + public delegate void NotifyReceivedHandler(ref bool value); + #endregion } diff --git a/VPet.ModMaker/SimpleObservable/ObservableValue.cs b/VPet.ModMaker/SimpleObservable/ObservableValue.cs index e9cf664..292172b 100644 --- a/VPet.ModMaker/SimpleObservable/ObservableValue.cs +++ b/VPet.ModMaker/SimpleObservable/ObservableValue.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -11,39 +12,118 @@ namespace HKW.HKWViewModels.SimpleObservable; /// 可观察值 /// /// +[DebuggerDisplay("{Value}")] public class ObservableValue : INotifyPropertyChanging, INotifyPropertyChanged - where T : notnull { - private T? _value = default; + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private T _value = default!; /// /// 当前值 /// - public T? Value + public T Value { get => _value; set { if (_value?.Equals(value) is true) return; - PropertyChanging?.Invoke(this, new(nameof(Value))); - ValueChanging?.Invoke(_value, value); + NotifyPropertyChanging(_value, value); _value = value; - PropertyChanged?.Invoke(this, new(nameof(Value))); - ValueChanged?.Invoke(value); + NotifyPropertyChanged(_value, value); } } + #region Ctor /// public ObservableValue() { } /// - /// 值 + /// 初始值 public ObservableValue(T value) { _value = value; } + #endregion + #region NotifyProperty + /// + /// 通知属性改变前 + /// + /// 旧值 + /// 新值 + private void NotifyPropertyChanging(T oldValue, T newValue) + { + PropertyChanging?.Invoke(this, new(nameof(Value))); + ValueChanging?.Invoke(oldValue, newValue); + } + + /// + /// 通知属性改变后 + /// + /// 旧值 + /// 新值 + private void NotifyPropertyChanged(T oldValue, T newValue) + { + PropertyChanged?.Invoke(this, new(nameof(Value))); + ValueChanged?.Invoke(oldValue, newValue); + } + #endregion + + #region Overwrite + /// + public override string ToString() + { + return Value?.ToString()!; + } + #endregion + + #region NotifyReceiver + /// + /// 添加通知属性改变后接收器 + /// + /// 添加的接口触发后会执行 + /// + /// 示例: + /// value1 = new(); + /// ObservableValue value2 = new(); + /// value2.AddNotifyReceiver(value1); + /// value2.NotifyReceived += (ref string v) => + /// { + /// v = "B"; // trigger this + /// }; + /// value1.Value = "A"; // execute this + /// // result: value1.Value == "A" , value2.Value == "B" + /// ]]> + /// + /// + /// 通知属性改变后接口 + public void AddNotifyReceiver(params INotifyPropertyChanged[] notifies) + { + foreach (var notify in notifies) + notify.PropertyChanged += Notify_PropertyChanged; + } + + /// + /// 删除通知属性改变后接收器 + /// + /// 通知属性改变后接口 + public void RemoveNotifyReceiver(params INotifyPropertyChanged[] notifies) + { + foreach (var notify in notifies) + notify.PropertyChanged -= Notify_PropertyChanged; + } + + private void Notify_PropertyChanged(object? sender, PropertyChangedEventArgs e) + { + var temp = Value; + NotifyReceived?.Invoke(ref temp); + Value = temp; + } + #endregion + + #region Event /// /// 属性改变前事件 /// @@ -57,23 +137,31 @@ public class ObservableValue : INotifyPropertyChanging, INotifyPropertyChange /// /// 值改变前事件 /// - public event ValueChangingEventHandler? ValueChanging; + public event ValueChangeEventHandler? ValueChanging; /// /// 值改变后事件 /// - public event ValueChangedEventHandler? ValueChanged; + public event ValueChangeEventHandler? ValueChanged; /// - /// 值改变后事件方法 + /// 通知接收器事件 /// - /// 值 - public delegate void ValueChangedEventHandler(T? value); + public event NotifyReceivedHandler? NotifyReceived; + #endregion + #region Delegate /// - /// 值改变前事件方法 + /// 值改变事件 /// /// 旧值 /// 新值 - public delegate void ValueChangingEventHandler(T? oldValue, T? newValue); + public delegate void ValueChangeEventHandler(T oldValue, T newValue); + + /// + /// 通知接收器 + /// + /// 引用值 + public delegate void NotifyReceivedHandler(ref T value); + #endregion } diff --git a/VPet.ModMaker/ViewModels/ModEdit/ClickTextEdit/ClickTextPageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/ClickTextEdit/ClickTextPageVM.cs index d9678e5..19913de 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/ClickTextEdit/ClickTextPageVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/ClickTextEdit/ClickTextPageVM.cs @@ -34,9 +34,9 @@ public class ClickTextPageVM RemoveCommand.ExecuteEvent += Remove; } - private void Filter_ValueChanged(string value) + private void Filter_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrWhiteSpace(value)) + if (string.IsNullOrWhiteSpace(newValue)) { ShowClickTexts.Value = ClickTexts; } @@ -44,7 +44,7 @@ public class ClickTextPageVM { ShowClickTexts.Value = new( ClickTexts.Where( - m => m.Id.Value.Contains(value, StringComparison.OrdinalIgnoreCase) + m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase) ) ); } diff --git a/VPet.ModMaker/ViewModels/ModEdit/FoodEdit/FoodPageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/FoodEdit/FoodPageVM.cs index d4e8333..c2ca671 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/FoodEdit/FoodPageVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/FoodEdit/FoodPageVM.cs @@ -36,16 +36,16 @@ public class FoodPageVM RemoveCommand.ExecuteEvent += Remove; } - private void Filter_ValueChanged(string value) + private void Filter_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrWhiteSpace(value)) + if (string.IsNullOrWhiteSpace(newValue)) { ShowFoods.Value = Foods; } else { ShowFoods.Value = new( - Foods.Where(m => m.Id.Value.Contains(value, StringComparison.OrdinalIgnoreCase)) + Foods.Where(m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase)) ); } } diff --git a/VPet.ModMaker/ViewModels/ModEdit/LowTextEdit/LowTextPageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/LowTextEdit/LowTextPageVM.cs index d45a88e..2900c7d 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/LowTextEdit/LowTextPageVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/LowTextEdit/LowTextPageVM.cs @@ -37,16 +37,18 @@ public class LowTextPageVM RemoveCommand.ExecuteEvent += Remove; } - private void Filter_ValueChanged(string value) + private void Filter_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrWhiteSpace(value)) + if (string.IsNullOrWhiteSpace(newValue)) { ShowLowTexts.Value = LowTexts; } else { ShowLowTexts.Value = new( - LowTexts.Where(m => m.Id.Value.Contains(value, StringComparison.OrdinalIgnoreCase)) + LowTexts.Where( + m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase) + ) ); } } diff --git a/VPet.ModMaker/ViewModels/ModEdit/ModEditWindowVM.cs b/VPet.ModMaker/ViewModels/ModEdit/ModEditWindowVM.cs index 5d08249..695e5b4 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/ModEditWindowVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/ModEditWindowVM.cs @@ -55,11 +55,11 @@ public class ModEditWindowVM SaveToCommand.ExecuteEvent += SaveTo; } - private void CurrentLang_ValueChanged(string value) + private void CurrentLang_ValueChanged(string oldValue, string newValue) { - if (value is null) + if (newValue is null) return; - ModInfo.Value.CurrentI18nData.Value = ModInfo.Value.I18nDatas[value]; + ModInfo.Value.CurrentI18nData.Value = ModInfo.Value.I18nDatas[newValue]; } public void Close() diff --git a/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetEditWindowVM.cs b/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetEditWindowVM.cs index a948a24..b0a0089 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetEditWindowVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetEditWindowVM.cs @@ -31,7 +31,7 @@ public class PetEditWindowVM Image.ValueChanged += Image_ValueChanged; } - private void Image_ValueChanged(BitmapImage value) + private void Image_ValueChanged(BitmapImage oldValue, BitmapImage newValue) { //LengthRatio.Value = BorderLength.Value / value.PixelWidth; } diff --git a/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetPageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetPageVM.cs index 12c4008..1f8e18e 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetPageVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/PetEdit/PetPageVM.cs @@ -34,16 +34,16 @@ public class PetPageVM RemoveCommand.ExecuteEvent += Remove; } - private void Filter_ValueChanged(string value) + private void Filter_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrWhiteSpace(value)) + if (string.IsNullOrWhiteSpace(newValue)) { ShowPets.Value = Pets; } else { ShowPets.Value = new( - Pets.Where(m => m.Id.Value.Contains(value, StringComparison.OrdinalIgnoreCase)) + Pets.Where(m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase)) ); } } diff --git a/VPet.ModMaker/ViewModels/ModEdit/SelectTextEdit/SelectTextPageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/SelectTextEdit/SelectTextPageVM.cs index 88156c8..17b6d5b 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/SelectTextEdit/SelectTextPageVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/SelectTextEdit/SelectTextPageVM.cs @@ -34,9 +34,9 @@ public class SelectTextPageVM RemoveCommand.ExecuteEvent += Remove; } - private void Filter_ValueChanged(string value) + private void Filter_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrWhiteSpace(value)) + if (string.IsNullOrWhiteSpace(newValue)) { ShowSelectTexts.Value = SelectTexts; } @@ -44,7 +44,7 @@ public class SelectTextPageVM { ShowSelectTexts.Value = new( SelectTexts.Where( - m => m.Id.Value.Contains(value, StringComparison.OrdinalIgnoreCase) + m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase) ) ); } diff --git a/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkEditWindowVM.cs b/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkEditWindowVM.cs index 22a73e2..137105a 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkEditWindowVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkEditWindowVM.cs @@ -32,7 +32,7 @@ public class WorkEditWindowVM Image.ValueChanged += Image_ValueChanged; } - private void Image_ValueChanged(BitmapImage value) + private void Image_ValueChanged(BitmapImage oldValue, BitmapImage newValue) { //LengthRatio.Value = BorderLength.Value / value.PixelWidth; } diff --git a/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkPageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkPageVM.cs index ae7ea40..f06a001 100644 --- a/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkPageVM.cs +++ b/VPet.ModMaker/ViewModels/ModEdit/WorkEdit/WorkPageVM.cs @@ -38,21 +38,21 @@ public class WorkPageVM RemoveCommand.ExecuteEvent += Remove; } - private void CurrentPet_ValueChanged(PetModel value) + private void CurrentPet_ValueChanged(PetModel oldValue, PetModel newValue) { - ShowWorks.Value = value.Works; + ShowWorks.Value = newValue.Works; } - private void Filter_ValueChanged(string value) + private void Filter_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrWhiteSpace(value)) + if (string.IsNullOrWhiteSpace(newValue)) { ShowWorks.Value = Works; } else { ShowWorks.Value = new( - Works.Where(m => m.Id.Value.Contains(value, StringComparison.OrdinalIgnoreCase)) + Works.Where(m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase)) ); } } diff --git a/VPet.ModMaker/ViewModels/ModMakerWindowVM.cs b/VPet.ModMaker/ViewModels/ModMakerWindowVM.cs index b4de224..4323cab 100644 --- a/VPet.ModMaker/ViewModels/ModMakerWindowVM.cs +++ b/VPet.ModMaker/ViewModels/ModMakerWindowVM.cs @@ -99,12 +99,12 @@ public class ModMakerWindowVM } } - private void ModFilterText_ValueChanged(string value) + private void ModFilterText_ValueChanged(string oldValue, string newValue) { - if (string.IsNullOrEmpty(value)) + if (string.IsNullOrEmpty(newValue)) ShowHistories.Value = Histories; else - ShowHistories.Value = new(Histories.Where(i => i.Id.Contains(value))); + ShowHistories.Value = new(Histories.Where(i => i.Id.Contains(newValue))); } public void CreateNewMod()