mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-05-25 10:05:49 +08:00
feat(触发器): 添加触发器编辑功能
- 在触发器页面添加“编辑选中项”按钮 - 扩展添加触发器对话框以支持编辑模式 - 实现触发器数据的回显和更新逻辑 - 通过绑定动态更新对话框标题
This commit is contained in:
@@ -21,6 +21,9 @@ public partial class AddTriggerDialogViewModel : ObservableObject
|
||||
private readonly GearTaskStorageService _storageService;
|
||||
private readonly ILogger<AddTriggerDialogViewModel> _logger;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _dialogTitle = "新增触发器";
|
||||
|
||||
[ObservableProperty]
|
||||
private string _triggerName = string.Empty;
|
||||
|
||||
@@ -112,6 +115,34 @@ public partial class AddTriggerDialogViewModel : ObservableObject
|
||||
LoadAvailableTaskDefinitions();
|
||||
}
|
||||
|
||||
public AddTriggerDialogViewModel(GearTaskStorageService storageService, ILogger<AddTriggerDialogViewModel> logger, GearTriggerViewModel existingTrigger)
|
||||
{
|
||||
_storageService = storageService;
|
||||
_logger = logger;
|
||||
|
||||
DialogTitle = "编辑触发器";
|
||||
IsTriggerTypeSelectionEnabled = false;
|
||||
|
||||
SelectedTriggerType = existingTrigger.TriggerType;
|
||||
TriggerName = existingTrigger.Name;
|
||||
IsEnabled = existingTrigger.IsEnabled;
|
||||
SelectedTaskDefinitionName = existingTrigger.TaskDefinitionName;
|
||||
|
||||
CronExpression = existingTrigger.TriggerType == TriggerType.Timed
|
||||
? (existingTrigger.CronExpression ?? CronExpression)
|
||||
: CronExpression;
|
||||
|
||||
SelectedHotkey = existingTrigger.TriggerType == TriggerType.Hotkey
|
||||
? existingTrigger.Hotkey
|
||||
: null;
|
||||
|
||||
HotkeyType = existingTrigger.TriggerType == TriggerType.Hotkey
|
||||
? existingTrigger.HotkeyType
|
||||
: HotKeyTypeEnum.KeyboardMonitor;
|
||||
|
||||
LoadAvailableTaskDefinitions();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成默认触发器名称
|
||||
/// </summary>
|
||||
@@ -145,7 +176,7 @@ public partial class AddTriggerDialogViewModel : ObservableObject
|
||||
_logger.LogInformation("已加载 {Count} 个可用的任务定义", AvailableTaskDefinitions.Count);
|
||||
|
||||
// 如果有任务定义,默认选择第一个
|
||||
if (AvailableTaskDefinitions.Count > 0)
|
||||
if (AvailableTaskDefinitions.Count > 0 && string.IsNullOrWhiteSpace(SelectedTaskDefinitionName))
|
||||
{
|
||||
SelectedTaskDefinitionName = AvailableTaskDefinitions[0];
|
||||
}
|
||||
@@ -244,4 +275,4 @@ public partial class AddTriggerDialogViewModel : ObservableObject
|
||||
// 移除旧的示例代码,现在使用HotKeyTextBox直接设置
|
||||
// HotKeyTextBox会直接绑定到SelectedHotkey属性
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user