private async Task LoadDetailByIdAsync(int id) { if (id == 0) { SelectedProject = new ProjectWrapper(CreateNewDetail()); } else { var lookup = await _projectRepository.GetByIdAsync(id); SelectedProject = new ProjectWrapper(lookup); SelectedProject.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = _projectRepository.HasChanges(); } if (e.PropertyName == nameof(SelectedProject.HasErrors)) { SaveDetailCommand.RaiseCanExecuteChanged(); } }; } IntialiseProjectSubtasks(SelectedProject.Model.ProjectSubtasks); SaveDetailCommand.RaiseCanExecuteChanged(); }
private async void OnAddDetailExecute() { await LoadDetailByIdAsync(0); ShowPopup = true; SaveDetailCommand.RaiseCanExecuteChanged(); }
public async Task LoadAsync(int id) { await LoadSelectedProjectAsync(id); InitialiseProjectSubtasks(_selectedProject.Model.ProjectSubtasks); await LoadSystemItemsLookupAsync(); SaveDetailCommand.RaiseCanExecuteChanged(); }
private void MyProjectSubtaskWrapper_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (!HasChanges) { HasChanges = _projectRepository.HasChanges(); } if (e.PropertyName == nameof(ProjectSubtaskWrapper.HasErrors)) { SaveDetailCommand.RaiseCanExecuteChanged(); } }
private void OnRemoveProjectSubtaskExecute() { SelectedProjectSubtask.PropertyChanged -= MyProjectSubtaskWrapper_PropertyChanged; //SelectedProject.Model.ProjectSubtasks.Remove(SelectedProjectSubtask.Model); _projectRepository.RemoveSubtask(SelectedProjectSubtask.Model); ProjectSubtasks.Remove(SelectedProjectSubtask); SelectedProjectSubtask = null; HasChanges = _projectRepository.HasChanges(); SaveDetailCommand.RaiseCanExecuteChanged(); }
private void Wrapper_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (!HasChanges) { HasChanges = _projectRepository.HasChanges(); } if (e.PropertyName == nameof(SubTaskWrapper.HasErrors)) { SaveDetailCommand.RaiseCanExecuteChanged(); } }