@@ -46,15 +46,28 @@ public MainWindow(ProfileService profileService,
4646 Automation . AddAutomationFocusChangedEventHandler ( OnFocusChangedHandler ) ;
4747 InitializeComponent ( ) ;
4848 ViewModel . PropertyChanged += ViewModelOnPropertyChanged ;
49+ ViewModel . PropertyChanging += ViewModelOnPropertyChanging ;
4950 DataContext = this ;
5051 }
5152
53+ private void ViewModelOnPropertyChanging ( object ? sender , PropertyChangingEventArgs e )
54+ {
55+ if ( e . PropertyName == nameof ( ViewModel . SelectedHomework ) )
56+ {
57+ ExitEditingMode ( true ) ;
58+ }
59+ }
60+
5261 private void ViewModelOnPropertyChanged ( object ? sender , PropertyChangedEventArgs e )
5362 {
5463 if ( e . PropertyName == nameof ( ViewModel . SelectedListBoxItem ) )
5564 {
5665 RepositionEditingWindow ( ) ;
5766 }
67+ if ( e . PropertyName == nameof ( ViewModel . SelectedHomework ) )
68+ {
69+ ExitEditingMode ( false ) ;
70+ }
5871 }
5972
6073 private void OnFocusChangedHandler ( object sender , AutomationFocusChangedEventArgs e )
@@ -83,10 +96,16 @@ private void OnFocusChangedHandler(object sender, AutomationFocusChangedEventArg
8396
8497 private void ExitEditingMode ( bool hard = true )
8598 {
99+ if ( ViewModel . IsCreatingMode )
100+ {
101+ ViewModel . IsCreatingMode = false ;
102+ return ;
103+ }
86104 if ( hard )
87105 MainListView . SelectedIndex = - 1 ;
88106 ViewModel . IsDrawerOpened = false ;
89107 AppEx . GetService < HomeworkEditWindow > ( ) . TryClose ( ) ;
108+ AppEx . GetService < ProfileService > ( ) . SaveProfile ( ) ;
90109 }
91110
92111 private void SetPos ( )
@@ -162,7 +181,7 @@ private void ButtonCreateHomework_OnClick(object sender, RoutedEventArgs e)
162181 ViewModel . IsUpdatingHomeworkSubject = true ;
163182 OnHomeworkEditorUpdated ? . Invoke ( this , EventArgs . Empty ) ;
164183 var lastSubject = ViewModel . EditingHomework . Subject ;
165- // ViewModel.IsCreatingMode = true;
184+ ViewModel . IsCreatingMode = true ;
166185 ViewModel . IsDrawerOpened = true ;
167186 var o = new Homework ( )
168187 {
@@ -365,6 +384,10 @@ private async void ButtonExport_OnClick(object sender, RoutedEventArgs e)
365384 }
366385
367386 var file = dialog . FileName ! ;
387+ var fd = new FlowDocument ( )
388+ {
389+ IsOptimalParagraphEnabled = true
390+ } ;
368391 try
369392 {
370393 await Task . Run ( ( ) =>
@@ -420,6 +443,6 @@ private void ButtonMore_Click(object sender, RoutedEventArgs e)
420443
421444 private void MainListView_OnSelectionChanged ( object sender , SelectionChangedEventArgs e )
422445 {
423- ExitEditingMode ( false ) ;
446+ // ExitEditingMode(false);
424447 }
425448}
0 commit comments