From c6636be0c367273e42c2da1d7259c2f32578f542 Mon Sep 17 00:00:00 2001
From: ShaoHua <345265198@qqcom>
Date: Thu, 1 Jan 2026 03:30:22 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=81=E8=AE=B8=E7=BC=96=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
TodoList/ViewModels/MainViewModel.cs | 45 ++++++++++++++++++
TodoList/Views/MainWindow.xaml | 69 ++++++++++++++++++++++++++++
TodoList/Views/MainWindow.xaml.cs | 9 ++++
3 files changed, 123 insertions(+)
diff --git a/TodoList/ViewModels/MainViewModel.cs b/TodoList/ViewModels/MainViewModel.cs
index e102e9c..c0afc50 100644
--- a/TodoList/ViewModels/MainViewModel.cs
+++ b/TodoList/ViewModels/MainViewModel.cs
@@ -25,6 +25,18 @@ namespace TodoList.ViewModels
[ObservableProperty]
private TodoPriority newPriority = TodoPriority.Medium;
+
+ [ObservableProperty]
+ private bool isEditDialogOpen;
+
+ [ObservableProperty]
+ private TodoItem editingTask;
+
+ [ObservableProperty]
+ private string editContent;
+
+ [ObservableProperty]
+ private TodoPriority editPriority = TodoPriority.Medium;
[ObservableProperty]
private bool isSettingsOpen;
@@ -189,6 +201,39 @@ namespace TodoList.ViewModels
Tasks.Remove(item);
}
+ [RelayCommand]
+ private void OpenEditDialog(TodoItem item)
+ {
+ if (item == null) return;
+ EditingTask = item;
+ EditContent = item.Content;
+ EditPriority = item.Priority;
+ IsEditDialogOpen = true;
+ }
+
+ [RelayCommand]
+ private void CloseEditDialog()
+ {
+ IsEditDialogOpen = false;
+ EditingTask = null;
+ EditContent = string.Empty;
+ EditPriority = TodoPriority.Medium;
+ }
+
+ [RelayCommand]
+ private async Task SaveEditAsync()
+ {
+ if (EditingTask == null || string.IsNullOrWhiteSpace(EditContent)) return;
+
+ EditingTask.Content = EditContent;
+ EditingTask.Priority = EditPriority;
+ EditingTask.SyncStatus = SyncStatus.Pending;
+
+ await _dataService.SaveTaskAsync(EditingTask);
+ await LoadTasksAsync();
+ CloseEditDialog();
+ }
+
public async void Receive(TaskAddedMessage message)
{
await LoadTasksAsync();
diff --git a/TodoList/Views/MainWindow.xaml b/TodoList/Views/MainWindow.xaml
index 1558cea..eee2043 100644
--- a/TodoList/Views/MainWindow.xaml
+++ b/TodoList/Views/MainWindow.xaml
@@ -172,6 +172,7 @@
+
@@ -232,6 +233,27 @@
+
+