Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

674
Vistas
Los controladores personalizados de .NET Maui no funcionan, ¿los documentos oficiales son incorrectos?

Estoy creando una aplicación usando .NET MAUI y estoy tratando de implementar controladores personalizados para instancias específicas de controles (por ejemplo, algunas entradas deben usar un controlador personalizado que creé). Para lograr esto, seguí los documentos oficiales de MS para esto. La siguiente es la configuración que me dicen que use:

1. Primero haga una subclase del control de entrada:

 using Microsoft.Maui.Controls; namespace MyMauiApp { public class MyEntry : Entry { } }

2. Luego personalizo EntryHandler para realizar la modificación deseada en las instancias de 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 } }; } } }

PROBLEMA: Esto me da el siguiente error:

Código de gravedad Descripción Error de estado de supresión de línea de archivo de proyecto CS0021 No se puede aplicar la indexación con [] a una expresión de tipo '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 Activo

Como dije, seguí los documentos por completo, pero aún así este error. He leído que otras personas también tienen este problema. ¿Alguien puede ayudar?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que se han realizado algunos cambios importantes en esta área por medio de este pr aquí y aquí .

Por lo que parece, esto se ha hecho para que pueda personalizar en cascada en los mapeadores con AppendToMapping y PrependToMapping o modificar todo el mapeo junto con ModifyMapping .

Sin explicar todas las variaciones aquí, concentrémonos en su situación. Esto significa que, en lugar de esta línea, Microsoft.Maui.Handlers.EntryHandler.EntryMapper[nameof(IView.Background)] = (handler, view) =>

Ahora debe declarar esto como: Microsoft.Maui.Handlers.EntryHandler.EntryMapper.AppendToMapping(nameof(IView.Background), (handler, view) =>

Tenga en cuenta que ahora también debe agregar a ) en el paréntesis de cierre, haciendo el código completo:

 Microsoft.Maui.Handlers.EntryHandler.EntryMapper.AppendToMapping(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 } });

Veré si puedo actualizar los documentos aquí y allá y espero que esto no se vuelva a romper;)

Editar: actualizó la página wiki para esto

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda