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 @@
+
+