Validando listas con Plugin.ValidationRules 1.4 – Todo lo nuevo

Table of Contents

Ahora con Plugin.ValidationRules podemos validar nuestra lista en Xamarin.Forms. Tenemos una nueva actualización Plugin.ValidationRules ahora con su versión 1.4 tiene una gran cantidad de nuevas características para acelerar nuestro trabajo. Esta versión tiene muchas mejoras de calidad y nuevas características agregadas, incluido un nuevo soporte de errores para ValidationUnit, entre otras cosas.

Puede descargar el nuevo Plugin.ValidationRules en Nuget Marketplace.

Actualización a 1.4

Esta actualización solo tiene un cambio de ruptura que lo obliga a cambiar su código cuando actualiza, sino que viene con muchas características nuevas que lo ayudarán a optimizar su tiempo. En resumen, no hay un cambio abrupto, si actualiza ahora, todo debería seguir funcionando igual para usted.

Cambios de última hora

  • Cambie ValueFormatter a Formatter para el objeto Validatable.
Phone.Formatter = new MaskFormatter("XXX-XXX-XXXX");

Nuevas características

  • Nuevo objeto ValidatableList agregado para listas de validación con reglas de validación.
  • Nuevo Generador ValidatorList agregado para el objeto ValidatableList.
...
            var monkeyList = new List<string>();
            monkeyList.Add("Baboon");
            monkeyList.Add("Capuchin Monkey");
            monkeyList.Add("Blue Monkey");

            MonkeyList = ValidatorList.Build<string>()
                .AddItemsSource(monkeyList)
                .IsRequired("An item is required.")
                .Must(value => 
                {
                    if(MonkeyList.SelectedIndex == 2 && Quantity.Value < 5) // == blue monkey
                        return false;

                    return true;
                }, "Minimum quantity of this monkey is 5");
...
            public ValidatableList<string> MonkeyList { get; set; }
...
         <Picker
            Title="Select the monkey"
            ItemsSource="{Binding MonkeyList.ItemsSource}"
            SelectedIndex="{Binding MonkeyList.SelectedIndex}" />
        <Label
            HorizontalTextAlignment="Center"
            Text="{Binding Path=MonkeyList.Error}"
            TextColor="Red" />
  • Nuevo método UnFormat agregado para la interfaz IValueFormatter.
  • Se ha agregado compatibilidad con errores para el objeto ValidationUnit.
            ValidationUnit UnitValidation = new ValidationUnit(Quantity, MonkeyList);
            UnitValidation.Validate();
            var error = UnitValidation.Error;
  • Nueva propiedad ValueFormatted agregada para el objeto Validatable.
            <Entry
                x:Name="phoneEntry"
                Placeholder="Phone"
                Text="{Binding Phone.ValueFormatted, Mode=TwoWay}" />
            <Label
                HorizontalTextAlignment="Center"
                Text="{Binding Phone.Error}"
                TextColor="Red" />

Otros

  • Se agregaron algunas mejoras.
  • Se solucionaron algunos problemas menores.

Recursos, documentación, ejemplos y vídeos

Consulte las notas de cambio de la versión para obtener detalles completos sobre las novedades de la versión. También puede revisar la documentación inicial y complementaria que es muy útil.

También puede ver la documentación de la versión anterior porque tiene muchas características nuevas, incluido el asignador automático para nuestros validadores de modelos.

No creo que se necesite nueva documentación, ya que las nuevas características solo respaldan lo que ya se había propuesto.

El ejemplo Xamarin.Forms se puede revisar desde hoy y se actualiza con la nueva versión plugin.validationRules.

Videos

Echa un vistazo a esta presentación como un juego inicial para entender lo que hace el plugin. Puedes encontrarlo en YouTube.

Conclusión

La verdad es que estoy muy contento con esta actualización, y es que una vez que empiezas a usar el plugin te resulta muy difícil cambiarlo o intentar usar otra cosa.

Actualice el plugin a 1.4 a través de NuGet Package Manager. ¡Déjame saber cómo estás! Y si tienes algún problema, por favor crea un Issue o escríbeme en Twitter @luismatosluna.

Share this content!

Facebook
Twitter
LinkedIn
Telegram
WhatsApp