XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

HaloPixelToolBox

【WinUI3】基于USB HID通讯的花再音响工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
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;
}