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