我正在使用 .NET MAUI 制作一个应用程序,并且我正在尝试为特定的控件实例实现自定义处理程序(例如,某些条目应该使用我创建的自定义处理程序)。为了实现这一点,我遵循了官方的 MS文档。以下是他们告诉我使用的设置:
1.首先制作一个Entry控件的子类:
using Microsoft.Maui.Controls;
namespace MyMauiApp
{
public class MyEntry : Entry
{
}
}
2.然后我自定义 EntryHandler 以对 MyEntry 实例执行所需的修改:
using Microsoft.Maui;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Graphics;
namespace MauiApp1
{
public partial class App : Application
{
public App()
{
InitializeComponent();
Microsoft.Maui.Handlers.EntryHandler.EntryMapper[nameof(IView.Background)] = (handler, view) =>
{
if (view is MyEntry)
{
#if __ANDROID__
handler.NativeView.SetBackgroundColor(Colors.Red.ToNative());
#elif __IOS__
handler.NativeView.BackgroundColor = Colors.Red.ToNative();
handler.NativeView.BorderStyle = UIKit.UITextBorderStyle.Line;
#elif WINDOWS
handler.NativeView.Background = Colors.Red.ToNative();
#endif
}
};
}
}
}
问题:这给了我以下错误:
严重性代码 描述 项目文件行抑制状态错误 CS0021 无法使用 [] 将索引应用于“IPropertyMapper<IEntry, EntryHandler>”类型的表达式 MyMauiApp (net6.0-android)、MyMauiApp (net6.0-ios)、MyMauiApp (net6 .0-windows10.0.19041) C:\Users\xxxxxx\source\repos\MyMauiApp\MyMauiApp\App.xaml.cs 24 活动
正如我所说,我完全遵循了文档,但仍然是这个错误。我读过其他人也有这个问题。任何人都可以帮忙吗?