Files
personal-toolbox/src/PersonalToolbox/ViewModels/CombinationMemberViewModel.cs
home-PC 26a22eef1c feat: 统一项目命名并补充路径失效报告
将内部项目目录、命名空间、配置目录、自启注册表值和设计/开发文档统一为 PersonalToolbox。

扩展路径校验服务,输出失效工具、字段、原因和路径,并在启动日志、设置页路径检查与导入配置流程中展示明细报告。

验证:dotnet build PersonalToolbox.sln
2026-05-27 14:20:19 +08:00

56 lines
1.4 KiB
C#

using PersonalToolbox.Models;
namespace PersonalToolbox.ViewModels;
public sealed class CombinationMemberViewModel : ObservableObject
{
private readonly Func<string, ToolItem?> _toolResolver;
private bool _enabled;
private int _intervalAfterMs;
public CombinationMemberViewModel(CombinationMember member, Func<string, ToolItem?> toolResolver)
{
Member = member;
_toolResolver = toolResolver;
_enabled = member.Enabled;
_intervalAfterMs = member.IntervalAfterMs;
}
public CombinationMember Member { get; }
public string ToolId => Member.ToolId;
public string ToolName => _toolResolver(Member.ToolId)?.Name ?? "引用不存在";
public string ToolTypeLabel => _toolResolver(Member.ToolId)?.Type switch
{
ToolType.System => "系统",
ToolType.Local => "本地",
ToolType.Url => "网址",
ToolType.Combination => "组合",
_ => "未知"
};
public bool Enabled
{
get => _enabled;
set
{
if (SetProperty(ref _enabled, value))
{
Member.Enabled = value;
}
}
}
public int IntervalAfterMs
{
get => _intervalAfterMs;
set
{
var normalized = Math.Max(0, value);
if (SetProperty(ref _intervalAfterMs, normalized))
{
Member.IntervalAfterMs = normalized;
}
}
}
}