using CommunityToolkit.Mvvm.ComponentModel;
using HaloPixelToolBox.Backend.Utilities;
using Microsoft.UI.Xaml.Navigation;
using XFEExtension.NetCore.WinUIHelper.Interface.Services;
using XFEExtension.NetCore.WinUIHelper.Utilities;
namespace HaloPixelToolBox.Backend.ViewModels;
public partial class AppShellPageViewModel : ViewModelBase
{
[ObservableProperty] public partial bool CanGoBack { get; set; }
[ObservableProperty] public partial string UserName { get; set; } = "未登录";
public IDialogService DialogService { get; set; } = ServiceManager.GetService<IDialogService>();
public INavigationViewService NavigationViewService { get; set; } = ServiceManager.GetService<INavigationViewService>();
public IMessageService MessageService { get; set; } = ServiceManager.GetService<IMessageService>();
public ILoadingService LoadingService { get; set; } = ServiceManager.GetService<ILoadingService>();
public AppShellPageViewModel()
{
NavigationViewService.NavigationService.Navigated += NavigationService_Navigated;
AdministratorSessionManager.StateChanged += AdministratorSessionManager_StateChanged;
_ = InitializeAdministratorSessionAsync();
}
private async Task InitializeAdministratorSessionAsync()
{
await AdministratorSessionManager.InitializeAsync();
UserName = AdministratorSessionManager.DisplayName;
}
private void AdministratorSessionManager_StateChanged(object? sender, EventArgs e) =>
UserName = AdministratorSessionManager.DisplayName;
private void NavigationService_Navigated(object? sender, NavigationEventArgs e) =>
CanGoBack = NavigationViewService.NavigationService.CanGoBack;
}
using CommunityToolkit.Mvvm.ComponentModel;
using HaloPixelToolBox.Backend.Utilities;
using Microsoft.UI.Xaml.Navigation;
using XFEExtension.NetCore.WinUIHelper.Interface.Services;
using XFEExtension.NetCore.WinUIHelper.Utilities;
namespace HaloPixelToolBox.Backend.ViewModels;
public partial class AppShellPageViewModel : ViewModelBase
{
[ObservableProperty] public partial bool CanGoBack { get; set; }
[ObservableProperty] public partial string UserName { get; set; } = "未登录";
public IDialogService DialogService { get; set; } = ServiceManager.GetService<IDialogService>();
public INavigationViewService NavigationViewService { get; set; } = ServiceManager.GetService<INavigationViewService>();
public IMessageService MessageService { get; set; } = ServiceManager.GetService<IMessageService>();
public ILoadingService LoadingService { get; set; } = ServiceManager.GetService<ILoadingService>();
public AppShellPageViewModel()
{
NavigationViewService.NavigationService.Navigated += NavigationService_Navigated;
AdministratorSessionManager.StateChanged += AdministratorSessionManager_StateChanged;
_ = InitializeAdministratorSessionAsync();
}
private async Task InitializeAdministratorSessionAsync()
{
await AdministratorSessionManager.InitializeAsync();
UserName = AdministratorSessionManager.DisplayName;
}
private void AdministratorSessionManager_StateChanged(object? sender, EventArgs e) =>
UserName = AdministratorSessionManager.DisplayName;
private void NavigationService_Navigated(object? sender, NavigationEventArgs e) =>
CanGoBack = NavigationViewService.NavigationService.CanGoBack;
}