标签: .net-maui

将服务注入到 .NET MAUI 应用程序中的视图模型中

我试图了解如何在 .NET MAUI 应用程序中实现依赖注入。

我有一个服务类及其接口,用于处理我的 REST 调用,如下所示:

public class MyRestApiService : IMyRestApiService
{
   public async Task<string> Get()
   {
      // Do someting
   }
}
Run Code Online (Sandbox Code Playgroud)

然后我将其放入我的 DI 容器中MauiProgram.cs

builder.Service.AddTransient<IMyRestApiService, MyRestApiService>();
Run Code Online (Sandbox Code Playgroud)

我还有一个将用于我的MainPage.xaml. 问题是,如果我对服务进行构造函数注入,XAML 似乎不喜欢它。

看起来MainPageViewModel像这样:

public class MainPageViewModel : BaseViewModel
{
   IMyRestApiService _apiService;
   public MainPageViewModel(IMyRestApiService apiService)
   {
      _apiService = apiService;
   }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试定义如下MainPageViewModel视图模型时MainPage.xaml,出现错误:

<ContentPage.BindingContext>
   <vm:MainPageViewModel />
</ContentPage.BindingContext>
Run Code Online (Sandbox Code Playgroud)

错误如下:

MainPageViewModel 类型不能用作对象元素,因为它不是公共的,或者没有定义公共无参数构造函数或类型转换器。

如何将我的服务注入到我的视图模型中?

xamarin xamarin.forms maui .net-maui

18
推荐指数
1
解决办法
1万
查看次数

.NET MAUI 中是否有用于保存文件的对话框?

.NET MAUI 提供了一个 FilePicker 来显示本机对话框,您可以在其中从设备中选取文件。

有没有办法显示保存文件的对话框?(您可以在其中选择路径并输入文件名,...)。

我在 .NET MAUI 文档中没有找到任何内容,并阅读了StackOverflow 问题来实现FolderPicker,但这并不完全是我所需要的。

.net c# maui .net-6.0 .net-maui

16
推荐指数
1
解决办法
4682
查看次数

需要一种方法在 MAUI 的编辑器/输入字段中隐藏软键盘

我发现此链接中似乎有用的内容:

Xamarin Forms 中的键盘禁用了 Entry 控件

但它似乎只适用于 Xamarin Forms。我什至在我的 MAUI 应用程序中使用了它,但它根本没有效果!

我希望这样做的原因是因为我想启用编辑器字段的焦点,但不触发软键盘(对于条形码扫描仪字段)

谢谢。

maui .net-maui

16
推荐指数
3
解决办法
1万
查看次数

创建与本机库 .net Maui 的绑定

有没有办法像 Xamarin 一样绑定本机库?我尝试在新的 .NET Maui 中进行一些本机实现,但尚未取得成功。如果有人有一些相关信息,我将非常感激。

android ios xamarin maui .net-maui

15
推荐指数
1
解决办法
8995
查看次数

MAUI:自定义条目

我是 MAUI 新手,具有 Xamarin.Forms 的基本知识

我想向 MAUI 中的 Entry 控件添加底部边框(和边框刻度)。

在 Xamarin.Forms 上,我们必须创建一个自定义控件,然后为每个平台创建一个渲染器。

在发布此消息之前,我在互联网上进行了研究。它涉及处理程序,我的印象是它只允许基本修改(更改背景颜色等......)。

我对所有这些信息有点困惑,如果有人能启发我,我将不胜感激。

maui .net-maui

14
推荐指数
2
解决办法
2万
查看次数

使用 .net maui 创建普通的 Windows 桌面应用程序?

我计划创建一个跨平台应用程序。最小支持的平台应该是 android 和 windows。我希望最终得到一个经典的 Windows 可执行文件,而不是 UWP 应用程序。新的毛伊岛平台看起来很合适。

我已经下载了 Visual Studio 2022 的当前预发行版本并创建了一个新的 maui 项目。当我在 Windows 上编译并运行它时,Visual Studio 创建的应用程序是一个 UWP 应用程序。毛伊岛的微软官方页面指出:

.NET 多平台应用程序 UI (.NET MAUI) 应用程序可以为以下平台编写:

Android 5.0 (API 21) 或更高版本。iOS 10 或更高版本。macOS 10.13 或更高版本,使用 Mac Catalyst。Windows 11 和 Windows 10 版本 1809 或更高版本,使用 Windows UI 库 (WinUI) 3。

https://learn.microsoft.com/en-us/dotnet/maui/supported-platforms

github 上的以下问题看起来也可以创建 widnows 可执行文件:

发布到 exe(不是独立的)可以工作,但不要获取已发布的文件夹文件,而是获取构建工件,请参阅下面的项目符号 3 了解所有详细信息

https://github.com/dotnet/maui/issues/4329

我对 Windows 支持的细节有点困惑。是否只有 Windows 可以创建 UWP 应用程序,或者我可以将其编译为普通的桌面应用程序吗?我可以将输出更改为普通的 Windows 可执行文件吗?如果可以,怎么办?

.net c# windows maui .net-maui

13
推荐指数
1
解决办法
8859
查看次数

在 .NET MAUI 中显示 Google Ads/AdMob

我很清楚 .NET MAUI 只是 Xamarin.Forms 的下一代实现,因此大多数 Xamarin.Forms 指南应该适用于 .NET MAUI(我猜)。

有人让 Admob 在 .NET MAUI 中工作吗?如果是的话,如何实现?我只需要指明正确的方向,我就会上路

admob maui .net-maui

12
推荐指数
1
解决办法
4150
查看次数

.NET MAUI/Xamarin.Forms 中的实体框架核心

我完成了 .NET MAUI 应用程序的编码,并且在调试模式下一切正常。尽管我在 .NET MAUI 上使用它,但 Xamarin 的 Entity Framework Core 满足了我所有的数据持久性需求。

我已经制作了 apk 文件并对其进行测试以查看是否一切正常,但结果发现数据库并未创建。一旦我尝试执行数据库操作,我的应用程序就会崩溃。所以我不确定 EF Core 与 .NET MAUI 是否不兼容(但它在调试中运行良好),或者我错过了一些东西。

我按照此处访问的教程进行操作https://learn.microsoft.com/en-us/ef/core/get-started/xamarin下面是我的 DataContext 文件

数据上下文.cs

using Microsoft.EntityFrameworkCore;
using MedbaseRec.Models;

namespace MedbaseRec.Utils
{
    public class DataContext : DbContext
    {
        public DbSet<QuestionPack> QuestionPacks { get; set; }
        public DbSet<Question> Questions { get; set; }

        public DataContext()
        {
            SQLitePCL.Batteries_V2.Init();

            Database.EnsureCreated();
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            string dbPath = Path.Combine(FileSystem.AppDataDirectory, "medbaseapplica.db3");
            optionsBuilder.UseSqlite($"Filename={dbPath}");
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

sqlite xamarin.forms entity-framework-core maui .net-maui

12
推荐指数
1
解决办法
1万
查看次数

尝试在 Android 上的 .net MAUI 中建立 SQLite 连接时出现 FileNotFoundException

db = new SQLiteConnection(databasePath);

上面的语句在 Windows 上运行良好,但在 Android 上出现以下错误。它在两个平台上以 xamarin 形式也运行良好。

System.IO.FileNotFoundException:“无法加载文件或程序集 'SQLitePCLRaw.provider.dynamic_cdecl,Version=2.0.4.976,Culture=neutral,PublicKeyToken=b68184102cba0b3b' 或其依赖项之一。”

谢谢你的帮助。

sqlite .net-maui

12
推荐指数
1
解决办法
3500
查看次数

.NET MAUI 错误没有为此对象定义无参数构造函数

将我的视图绑定到视图模型时发生。

错误描述:

System.MissingMethodException: 'No parameterless constructor defined for type 'yournamespace.view.pagename'.'
Run Code Online (Sandbox Code Playgroud)

c# maui .net-maui maui-community-toolkit maui-windows

11
推荐指数
1
解决办法
6315
查看次数