diff --git a/src/MaaWpfGui/ViewModels/CopilotItemViewModel.cs b/src/MaaWpfGui/ViewModels/CopilotItemViewModel.cs index bceef4f6a8..9798b76b1f 100644 --- a/src/MaaWpfGui/ViewModels/CopilotItemViewModel.cs +++ b/src/MaaWpfGui/ViewModels/CopilotItemViewModel.cs @@ -90,12 +90,4 @@ public class CopilotItemViewModel : PropertyChangedBase Instances.CopilotViewModel.SaveCopilotTask(); } } - - private int _index; - - public int Index - { - get => _index; - set => SetAndNotify(ref _index, value); - } } diff --git a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs index c801d99a56..080591c846 100644 --- a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs @@ -128,7 +128,6 @@ public partial class CopilotViewModel : Screen var list = JsonConvert.DeserializeObject>(copilotTaskList) ?? []; for (int i = 0; i < list.Count; i++) { - list[i].Index = i; CopilotItemViewModels.Add(list[i]); } @@ -948,9 +947,9 @@ public partial class CopilotViewModel : Screen [UsedImplicitly] public void SelectCopilotTask(object? sender, MouseButtonEventArgs? e = null) { - if (e?.Source is FrameworkElement element && element.Tag is int index) + if (e?.Source is FrameworkElement element && element.Tag is CopilotItemViewModel item) { - Filename = CopilotItemViewModels[index].FilePath; // 假设原方法接受int参数 + Filename = item.FilePath; if (e.ChangedButton == MouseButton.Right) { UseCopilotList = false; @@ -960,10 +959,10 @@ public partial class CopilotViewModel : Screen // UI 绑定的方法 [UsedImplicitly] - public void DeleteCopilotTask(int index) + public void DeleteCopilotTask(CopilotItemViewModel item) { - CopilotItemViewModels.RemoveAt(index); - CopilotItemIndexChanged(); + CopilotItemViewModels.Remove(item); + SaveCopilotTask(); } // UI 绑定的方法 @@ -974,8 +973,7 @@ public partial class CopilotViewModel : Screen { CopilotItemViewModels.Remove(item); } - - CopilotItemIndexChanged(); + SaveCopilotTask(); } // UI 绑定的方法 @@ -1659,20 +1657,20 @@ public partial class CopilotViewModel : Screen name ??= stageCode; - var item = new CopilotItemViewModel(name, cachePath, false, copilotId) { Index = CopilotItemViewModels.Count, TabIndex = CopilotTabIndex, }; + var item = new CopilotItemViewModel(name, cachePath, false, copilotId) { TabIndex = CopilotTabIndex, }; CopilotItemViewModels.Add(item); } else { if (flags.HasFlag(CopilotModel.DifficultyFlags.Normal)) { - var item = new CopilotItemViewModel(stageCode, cachePath, false, copilotId) { Index = CopilotItemViewModels.Count, TabIndex = CopilotTabIndex, }; + var item = new CopilotItemViewModel(stageCode, cachePath, false, copilotId) { TabIndex = CopilotTabIndex, }; CopilotItemViewModels.Add(item); } if (flags.HasFlag(CopilotModel.DifficultyFlags.Raid)) { - var item = new CopilotItemViewModel(stageCode, cachePath, true, copilotId) { Index = CopilotItemViewModels.Count, TabIndex = CopilotTabIndex, }; + var item = new CopilotItemViewModel(stageCode, cachePath, true, copilotId) { TabIndex = CopilotTabIndex, }; CopilotItemViewModels.Add(item); } } @@ -1715,23 +1713,6 @@ public partial class CopilotViewModel : Screen }); } - /// - /// 更新任务顺序 - /// UI 绑定的方法 - /// - [UsedImplicitly] - public void CopilotItemIndexChanged() - { - Execute.OnUIThread(() => { - for (int i = 0; i < CopilotItemViewModels.Count; i++) - { - CopilotItemViewModels[i].Index = i; - } - - SaveCopilotTask(); - }); - } - /// /// Starts copilot. /// UI 绑定的方法 diff --git a/src/MaaWpfGui/Views/UI/CopilotView.xaml b/src/MaaWpfGui/Views/UI/CopilotView.xaml index 05e72fe546..dbc5d7977d 100644 --- a/src/MaaWpfGui/Views/UI/CopilotView.xaml +++ b/src/MaaWpfGui/Views/UI/CopilotView.xaml @@ -515,7 +515,7 @@ hc:BorderElement.CornerRadius="4,4,0,0" properties:AutoScroll.AutoScroll="True" BorderThickness="1,1,1,0" - DragDrop.Drop="{s:Action CopilotItemIndexChanged}" + DragDrop.Drop="{s:Action SaveCopilotTask}" IsEnabled="{c:Binding StartEnabled}" ItemsSource="{Binding Path=CopilotItemViewModels}" Style="{DynamicResource NoSelectedHighlightListBoxStyle}" @@ -559,7 +559,7 @@ IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}" MouseRightButtonUp="{s:Action SelectCopilotTask}" PreviewMouseLeftButtonUp="{s:Action SelectCopilotTask}" - Tag="{c:Binding Index}" /> + Tag="{Binding}" />