mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
refactor: 移除 CopilotItemViewModel 中的 Index 属性并更新相关逻辑 (#15328)
This commit is contained in:
@@ -90,12 +90,4 @@ public class CopilotItemViewModel : PropertyChangedBase
|
||||
Instances.CopilotViewModel.SaveCopilotTask();
|
||||
}
|
||||
}
|
||||
|
||||
private int _index;
|
||||
|
||||
public int Index
|
||||
{
|
||||
get => _index;
|
||||
set => SetAndNotify(ref _index, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,7 +128,6 @@ public partial class CopilotViewModel : Screen
|
||||
var list = JsonConvert.DeserializeObject<List<CopilotItemViewModel>>(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
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新任务顺序
|
||||
/// UI 绑定的方法
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
public void CopilotItemIndexChanged()
|
||||
{
|
||||
Execute.OnUIThread(() => {
|
||||
for (int i = 0; i < CopilotItemViewModels.Count; i++)
|
||||
{
|
||||
CopilotItemViewModels[i].Index = i;
|
||||
}
|
||||
|
||||
SaveCopilotTask();
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts copilot.
|
||||
/// UI 绑定的方法
|
||||
|
||||
@@ -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}" />
|
||||
<Button
|
||||
Grid.Column="2"
|
||||
Margin="0"
|
||||
@@ -570,7 +570,7 @@
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
Command="{s:Action DeleteCopilotTask}"
|
||||
CommandParameter="{c:Binding Index}"
|
||||
CommandParameter="{Binding}"
|
||||
IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
Reference in New Issue
Block a user