1313using TakeMyTime . BLL . Logic ;
1414
1515using TakeMyTime . Models . Models ;
16+ using TakeMyTime . WPF . Utility ;
1617
1718namespace TakeMyTime . WPF . Subtasks
1819{
@@ -24,15 +25,26 @@ public partial class SubtaskList : Window
2425 public SubtaskList ( int assignment_id )
2526 {
2627 InitializeComponent ( ) ;
28+ this . PagingManager = new PagingManager < SubtaskGridViewModel > ( 6 ) ;
2729 Load ( assignment_id ) ;
30+ this . RefreshBindings ( 1 ) ;
31+ }
32+
33+ private void RefreshBindings ( int page )
34+ {
35+ this . lv_Subtasks . ItemsSource = this . PagingManager . Page ( page ) ;
36+ this . btn_CurrentPage . Content = this . PagingManager . CurrentPage ;
37+ this . btn_allPages . Content = this . PagingManager . MaxPage ;
38+ this . btn_PagingForward . IsEnabled = this . PagingManager . CanPageForward ;
39+ this . btn_PagingBack . IsEnabled = this . PagingManager . CanPageBack ;
2840 }
2941
3042 private void Load ( int assignment_id )
3143 {
3244 var assignmentLogic = new AssignmentLogic ( ) ;
3345 this . Assignment = assignmentLogic . GetAssignmentById ( assignment_id ) ;
3446 this . GridViewModels = Assignment . Subtasks . Select ( s => new SubtaskGridViewModel ( s ) ) . ToList ( ) ;
35- this . lv_Subtasks . ItemsSource = this . GridViewModels ;
47+ this . PagingManager . Data = this . GridViewModels ;
3648 assignmentLogic . Dispose ( ) ;
3749 }
3850
@@ -65,6 +77,7 @@ private void btn_DeleteSubtask_Click(object sender, RoutedEventArgs e)
6577 assignmentLogic . DeleteSubtask ( this . Assignment . Id , this . SelectedSubtask . Id ) ;
6678 assignmentLogic . Dispose ( ) ;
6779 Load ( this . Assignment . Id ) ;
80+ RefreshBindings ( this . PagingManager . CurrentPage ) ;
6881 }
6982 }
7083
@@ -75,6 +88,7 @@ private void btn_EditSubtask_Click(object sender, RoutedEventArgs e)
7588 var subtaskEditDialog = new AddSubtask ( this . SelectedSubtask . Id , this . Assignment . Id ) ;
7689 subtaskEditDialog . ShowDialog ( ) ;
7790 Load ( this . Assignment . Id ) ;
91+ RefreshBindings ( this . PagingManager . CurrentPage ) ;
7892 }
7993 }
8094
@@ -83,6 +97,17 @@ private void btn_AddSubtask_Click(object sender, RoutedEventArgs e)
8397 var subtaskAddDialog = new AddSubtask ( this . Assignment . Id ) ;
8498 subtaskAddDialog . ShowDialog ( ) ;
8599 Load ( this . Assignment . Id ) ;
100+ RefreshBindings ( this . PagingManager . CurrentPage ) ;
101+ }
102+
103+ private void btn_PagingBack_Click ( object sender , RoutedEventArgs e )
104+ {
105+ this . RefreshBindings ( this . PagingManager . CurrentPage - 1 ) ;
106+ }
107+
108+ private void btn_PagingForward_Click ( object sender , RoutedEventArgs e )
109+ {
110+ this . RefreshBindings ( this . PagingManager . CurrentPage + 1 ) ;
86111 }
87112
88113 private void btn_SaveSubtasks_Click ( object sender , RoutedEventArgs e )
@@ -95,5 +120,8 @@ private void btn_SaveSubtasks_Click(object sender, RoutedEventArgs e)
95120 public Assignment Assignment { get ; set ; }
96121 public List < SubtaskGridViewModel > GridViewModels { get ; set ; }
97122 public SubtaskGridViewModel SelectedSubtask { get ; set ; }
123+ public PagingManager < SubtaskGridViewModel > PagingManager { get ; set ; }
124+
125+
98126 }
99127}
0 commit comments