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

XFEExtension.NetCore.WinUIHelper

【DLL】WinUI的各种工具类,帮助开发者快速构建一个模块化的WinUI项目

公开
关注 0 Fork 0 Star 0
UTF-8
namespace XFEExtension.NetCore.WinUIHelper.Utilities;

/// <summary>
/// 页面管理器
/// </summary>
public static class PageManager
{
    /// <summary>
    /// 页面定义字典
    /// </summary>
    public static Dictionary<string, Type> PageDefinitions { get; set; } = [];
    /// <summary>
    /// 当前页面实例字典
    /// </summary>
    public static Dictionary<string, Page> CurrentPages { get; set; } = [];
    /// <summary>
    /// 注册页面
    /// </summary>
    /// <param name="pageType">页面类型</param>
    /// <returns>是否注册成功</returns>
    public static bool RegisterPage(Type pageType) => PageDefinitions.TryAdd(pageType.FullName!, pageType);
    /// <summary>
    /// 添加或者更新当前页面
    /// </summary>
    /// <typeparam name="T">页面泛型</typeparam>
    /// <param name="page">当前页面对象</param>
    /// <returns>添加/更新</returns>
    public static bool AddOrUpdateCurrentPage<T>(T page) where T : Page
    {
        var pageName = page.GetType().FullName!;
        if (CurrentPages.TryAdd(pageName, page))
            return true;
        CurrentPages[pageName] = page;
        return false;
    }
}