Refactor StundenViewModel: simplify Title property, make RefreshProperties public, and update startup logic in StundenPage to refresh data after login.
This commit is contained in:
@@ -51,13 +51,7 @@ public partial class StundenViewModel : ObservableObject, IQueryAttributable, IN
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] private List<DayTime> dayTimes = new List<DayTime>();
|
[ObservableProperty] private List<DayTime> dayTimes = new List<DayTime>();
|
||||||
|
|
||||||
/// <summary>
|
public string Title => _settings.Name + " " + _settings.Surname;
|
||||||
/// Der Titel der Stundenübersicht ist der aktuelle Benutzername
|
|
||||||
/// </summary>
|
|
||||||
public string Title {
|
|
||||||
get => _settings.Name + " " + _settings.Surname;
|
|
||||||
set;
|
|
||||||
}
|
|
||||||
|
|
||||||
[ObservableProperty] private Hours hours;
|
[ObservableProperty] private Hours hours;
|
||||||
|
|
||||||
@@ -181,13 +175,13 @@ public partial class StundenViewModel : ObservableObject, IQueryAttributable, IN
|
|||||||
// Task task = LoadDay(DateTime.Today);
|
// Task task = LoadDay(DateTime.Today);
|
||||||
// Beim Startup NICHT direkt im CTOR laden (kann Startup/Navigation blockieren)
|
// Beim Startup NICHT direkt im CTOR laden (kann Startup/Navigation blockieren)
|
||||||
// Stattdessen via Dispatcher "nach" dem Aufbau starten:
|
// Stattdessen via Dispatcher "nach" dem Aufbau starten:
|
||||||
MainThread.BeginInvokeOnMainThread(async () => {
|
// MainThread.BeginInvokeOnMainThread(async () => {
|
||||||
try {
|
// try {
|
||||||
await LoadDay(DateTime.Today);
|
// await LoadDay(DateTime.Today);
|
||||||
} catch (Exception ex) {
|
// } catch (Exception ex) {
|
||||||
AlertEvent?.Invoke(this, ex.Message);
|
// AlertEvent?.Invoke(this, ex.Message);
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -338,7 +332,7 @@ public partial class StundenViewModel : ObservableObject, IQueryAttributable, IN
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Refreshes all properties
|
/// Refreshes all properties
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void RefreshProperties() {
|
public void RefreshProperties() {
|
||||||
OnPropertyChanged(nameof(Hours));
|
OnPropertyChanged(nameof(Hours));
|
||||||
OnPropertyChanged(nameof(Title));
|
OnPropertyChanged(nameof(Title));
|
||||||
OnPropertyChanged(nameof(Nominal));
|
OnPropertyChanged(nameof(Nominal));
|
||||||
|
|||||||
@@ -58,6 +58,12 @@ public partial class StundenPage : ContentPage {
|
|||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
await DisplayAlert("Fehler:", ex.Message, "OK");
|
await DisplayAlert("Fehler:", ex.Message, "OK");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// Wenn eingeloggt, sicherstellen dass die Daten aktuell sind (besonders nach dem Login)
|
||||||
|
if (BindingContext is StundenViewModel vm) {
|
||||||
|
vm.RefreshProperties(); // Aktualisiert den Titel (Name/Vorname)
|
||||||
|
await vm.LoadDay(vm.DateToday);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user