将内部项目目录、命名空间、配置目录、自启注册表值和设计/开发文档统一为 PersonalToolbox。 扩展路径校验服务,输出失效工具、字段、原因和路径,并在启动日志、设置页路径检查与导入配置流程中展示明细报告。 验证:dotnet build PersonalToolbox.sln
56 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|