diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 49c3ad41bb..03806c61e4 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1042,7 +1042,6 @@ public class AsstProxy foreach (var i in Instances.TaskQueueViewModel.TaskItemViewModels) { i.TaskId = 0; - i.Status = (int)TaskStatus.Idle; } _tasksStatus.Clear(); break; @@ -1192,7 +1191,6 @@ public class AsstProxy foreach (var i in Instances.TaskQueueViewModel.TaskItemViewModels) { i.TaskId = 0; - i.Status = (int)TaskStatus.Idle; } _tasksStatus.Clear(); diff --git a/src/MaaWpfGui/ViewModels/TaskItemViewModel.cs b/src/MaaWpfGui/ViewModels/TaskItemViewModel.cs index c02a86a4a2..099ee9a31e 100644 --- a/src/MaaWpfGui/ViewModels/TaskItemViewModel.cs +++ b/src/MaaWpfGui/ViewModels/TaskItemViewModel.cs @@ -42,8 +42,13 @@ public class TaskItemViewModel : PropertyChangedBase { get => _isEnable; set { - SetAndNotify(ref _isEnable, value); + if (!SetAndNotify(ref _isEnable, value)) + { + return; + } + ConfigFactory.CurrentConfig.TaskQueue[Index].IsEnable = value; + Status = 0; } } diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 2f55e113f9..4e52353f7b 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -1684,6 +1684,7 @@ public class TaskQueueViewModel : Screen } MainTasksCompletedCount = 0; + ResetTaskItemStatuses(); // 所有提前 return 都要放在 _runningState.SetIdle(false) 之前,否则会导致无法再次点击开始 _runningState.SetIdle(false); @@ -1809,6 +1810,14 @@ public class TaskQueueViewModel : Screen } } + private void ResetTaskItemStatuses() + { + foreach (var item in TaskItemViewModels) + { + item.Status = (int)Main.TaskStatus.Idle; + } + } + public void ManualStop() { if (Stopping || _runningState.GetIdle())