Phase 7: 自定义图标系统 + 组合嵌套 + 删除功能 + UI 优化
- 安装 FontAwesome.Sharp v6.6.0,新增 Helpers/IconProvider.cs(190+ 图标,11 分类) - ToolEditWindow/GroupEditWindow: 添加图标选择 ComboBox,按分类分组,带图标预览 - MainWindow 卡片模板: 使用 fa:IconBlock 渲染图标,IconCode 为空时回退首字母 - 组合角标从 emoji 改为 FontAwesome Cubes 图标,放置于卡片右上角 - ComboBox 样式修复: TextBlock→ContentPresenter,支持 ItemTemplate+DisplayMemberPath - ComboBox 滚轮修复: CanContentScroll=False 解决分组模式下滑轮跳组问题 - 编辑弹窗: 所有输入控件添加 VerticalContentAlignment=Center - 组合可包含其他组合: GetAncestorIds 递归排除自身及祖先防止循环引用 - ProcessExecutionService: 支持嵌套组合递归执行,visited 集合防死循环 - MainWindow 右键菜单新增删除功能,工具和组合均支持 - 移除侧边栏顶部个人工具箱标题文字 - 更新测试: 适配组合嵌套逻辑,新增祖先排除测试 (83/83 通过)
This commit is contained in:
@@ -238,6 +238,25 @@ public partial class MainViewModel : ObservableObject
|
||||
if (editVm.Saved) RefreshData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除工具或组合
|
||||
/// </summary>
|
||||
[RelayCommand]
|
||||
private void DeleteTool(ToolItem? tool)
|
||||
{
|
||||
if (tool == null) return;
|
||||
|
||||
var type = tool.IsGroup ? "组合" : "工具";
|
||||
if (MessageBox.Show($"确定删除{type} \"{tool.Name}\" 吗?",
|
||||
"确认删除", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes)
|
||||
return;
|
||||
|
||||
_dataService.Config.Tools.Remove(tool);
|
||||
_dataService.Save();
|
||||
_logService.Info($"已删除{type}: {tool.Name}");
|
||||
RefreshData();
|
||||
}
|
||||
|
||||
// ───────────────────────────── 数据刷新 ─────────────────────────────
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user