繁体   English   中英

如何在 .NET MAUI 项目中显示 DatePicker 弹出窗口?

[英]How to display a DatePicker popup in .NET MAUI project?

对于在弹出窗口中显示日期选择器的 Xamarin 项目,我使用了 Acr.UserDialogs ,但它与 .NET MAUI 不兼容。

.NET MAUI 是否有端口或类似的端口?

如果不是,我如何显示 .NET MAUI 项目的日期弹出窗口?

根据您提供的链接, Acr.UserDialogs package 的最新版本已支持 .net maui。

您可以查看 package 所有者的示例,其中显示了如何使用Acr.UserDialogs版本 8.0.1。

示例链接: https://github.com/aritchie/userdialogs/tree/master/sample/Sample

要使用 Acr.UserDialogs package 的 .net6 版本,我必须在MauiProgram而不是MainActivity中初始化它。

我的MauiProgram class 看起来像那样,请注意ConfigureLifecycleEvents部分。 它与主题相关。

    public static class MauiProgram
    {
        public static MauiApp CreateMauiApp()
        {
            var builder = MauiApp.CreateBuilder();
            builder.UseMauiApp<App>().ConfigureFonts(fonts =>
            {
                      // configuring fonts here, (not related to the subject)
            })
            .ConfigureLifecycleEvents(events =>
            {
#if ANDROID
                events.AddAndroid(android => android.OnApplicationCreate(app => UserDialogs.Init(app)));
#endif
            })
            // other useXXXXX() calls (not related to the subject)


            return builder.Build();
        }
    }

要在 Android 中正确初始化 UserDialogs,还要为 UserDialogs 提供 DependencyInjection (ConstructorInjection),我在我的 MainApplication.cs 中执行此操作

protected override MauiApp CreateMauiApp()
{
    UserDialogs.Init(this);
    return MauiProgram.CreateMauiApp();
}

在这种情况下,您还可以将 UserDialogs 应用于您的 DependencyInjection 服务,例如

builder.Services.AddSingleton<IUserDialogs>(UserDialogs.Instance);

在您的 MauiProgram.cs 中。

所以 ConfigureLifecycleEvents 不再需要了,你也可以避免这种丑陋的 #if 模式;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM