The Xamarin Community Toolkit is a collection of Animations, Behaviors, Converters, and Effects for mobile development with Xamarin.Forms. It simplifies and demonstrates common developer tasks building iOS, Android, and UWP apps with Xamarin.Forms.
MIT License
1.58k
stars
471
forks
source link
[Bug] NumericValidationBehavior throws an exception #1984
In the Maui Community Tookit, the NumericValidationBehavior throws an exception if the entry field is empty.
Looking at the source, the first line in ValidateAsync throws an ArgumentNullException if the value is null. Unless I’m missing something, there’s no way to catch that and it crashes the app.
It should just return false. Ideally, there would be an IsRequired property that would allow it to return true if the value was null or empty.
Steps to Reproduce
Create a page with an entry field.
Add a NumericValidationBehavior and set the validation behavior to on lose focus
Tap the entry field and then tap something else to take way it's focus
Boom. It crashes the app
Expected Behavior
You can leave a field empty without crashing the app
Actual Behavior
It crashes the app
Basic Information
Version with issue: 5.3.0
Last known good version: n/a
IDE: Visual Studio for Mac
Platform Target Frameworks:
iOS: 16.1
Android: 13
Windows: n/a
Nuget Packages:
Affected Devices: All
Workaround
No. I downloaded the source and created a local version with the change.
Description
In the Maui Community Tookit, the NumericValidationBehavior throws an exception if the entry field is empty.
Looking at the source, the first line in ValidateAsync throws an ArgumentNullException if the value is null. Unless I’m missing something, there’s no way to catch that and it crashes the app.
It should just return false. Ideally, there would be an IsRequired property that would allow it to return true if the value was null or empty.
Steps to Reproduce
Expected Behavior
You can leave a field empty without crashing the app
Actual Behavior
It crashes the app
Basic Information
Workaround
No. I downloaded the source and created a local version with the change.