From 55c0c29589dd67f70b4e29969fd7f6faa17b517b Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Tue, 27 Jan 2026 13:13:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E5=88=B7=E7=90=86?= =?UTF-8?q?=E6=99=BA=E6=97=B6,=20=E5=80=99=E9=80=89=E6=8E=89=E8=90=BD?= =?UTF-8?q?=E7=89=A9=E5=8F=8D=E5=A4=8D=E6=B7=BB=E5=8A=A0=E5=88=B0=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 仍然存在: 输入文本修改掉落物名称后切换到另一个掉落物为 `未选择` 的刷理智, 会导致切换后掉落物框显示为 "" --- .../FightSettingsUserControlModel.cs | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs index 613b235bc4..4d737422d3 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs @@ -63,6 +63,7 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel var item = new StagePlanItem(); item.PropertyChanged += (_, __) => SaveStagePlan(); StagePlan.Add(item); + InitDrops(); } public static FightSettingsUserControlModel Instance { get; } @@ -385,18 +386,15 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel AllDrops.Sort((a, b) => string.Compare(a.Value, b.Value, StringComparison.Ordinal)); DropsList = [.. AllDrops]; - if (AllDrops.FirstOrDefault(i => i.Value == DropsItemId) is { } item) + + foreach (var task in ConfigFactory.CurrentConfig.TaskQueue.OfType()) { - DropsItemName = item.Display; - NotifyOfPropertyChange(nameof(DropsItemName)); - } - else + if (AllDrops.FirstOrDefault(i => i.Value == task.DropId) is not { } item) { - DropsItemId = string.Empty; - DropsItemName = string.Empty; - NotifyOfPropertyChange(nameof(DropsItemName)); + task.DropId = string.Empty; } } + } /// /// Gets or private sets the list of drops. @@ -418,7 +416,7 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel /// /// Gets or sets the item Name of drops. /// - public string DropsItemName { get; set; } = string.Empty; + public string DropsItemName { get => field; set => SetAndNotify(ref field, value); } = string.Empty; // UI 绑定的方法 [UsedImplicitly] @@ -641,10 +639,10 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel { fight.StagePlan.Add(string.Empty); } - InitDrops(); UpdateStageList(); // 临时修复, 应为同步 RefreshCurrentStagePlan(); RefreshWeeklySchedule(); + RefreshDropName(); Refresh(); IsRefreshingUI = false; } @@ -849,6 +847,20 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel SetTaskConfig(t => t.WeeklySchedule.SequenceEqual(dict), t => t.WeeklySchedule = dict); } + private void RefreshDropName() + { + var id = GetTaskConfig().DropId; + if (AllDrops.FirstOrDefault(i => i.Value == id) is { } item) + { + DropsItemName = item.Display; + } + else + { + SetTaskConfig(t => t.DropId == string.Empty, t => t.DropId = string.Empty); + DropsItemName = AllDrops.FirstOrDefault(i => i.Value == string.Empty)?.Display ?? string.Empty; + } + } + #endregion 关卡列表更新 public class SanityInfo