using PersonalToolbox.Models; namespace PersonalToolbox.ViewModels; public sealed class CombinationMemberViewModel : ObservableObject { private readonly Func _toolResolver; private bool _enabled; private int _intervalAfterMs; public CombinationMemberViewModel(CombinationMember member, Func 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; } } } }