-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModulePage.xaml.cs
More file actions
63 lines (52 loc) · 1.56 KB
/
ModulePage.xaml.cs
File metadata and controls
63 lines (52 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
namespace JSGradesMini;
public partial class ModulePage : ContentPage
{
private Modules _module;
private Action _saveQualifications;
public ModulePage(Modules module, Action saveQualifications)
{
InitializeComponent();
_module = module;
_saveQualifications = saveQualifications;
_module.CalculateModuleGrade();
BindingContext = _module;
assessmentCollectionView.ItemsSource = _module.Assessments;
}
protected override void OnAppearing()
{
base.OnAppearing();
_module.CalculateModuleGrade();
assessmentCollectionView.ItemsSource = null;
assessmentCollectionView.ItemsSource = _module.Assessments;
}
protected override void OnDisappearing()
{
base.OnDisappearing();
_module.CalculateModuleGrade();
_saveQualifications();
}
private void OnAssessmentSelected(object sender, SelectionChangedEventArgs e)
{
if (e.CurrentSelection.FirstOrDefault() is ModuleAssessment selectedAssessment)
{
assessmentCollectionView.SelectedItem = null;
Navigation.PushAsync(new AssessmentPage(selectedAssessment, _saveQualifications));
}
}
private void OnAddAssessmentClicked(object sender, EventArgs e)
{
var newAssessment = new ModuleAssessment
{
AssessmentType = AssessmentType.Coursework,
AssessmentName = "New Assessment",
DueDate = DateTime.Now,
Weighting = 0.0f,
Grade = 0.0f,
IsComplete = false
};
_module.Assessments.Add(newAssessment);
assessmentCollectionView.ItemsSource = null;
assessmentCollectionView.ItemsSource = _module.Assessments;
_saveQualifications();
}
}