unoplatform/uno · error · ArgumentException

This converter does not use any parameters. You should remov

Error message

This converter does not use any parameters. You should remove "{parameter}" passed as parameter.

What it means

FromNullableBoolToVisibilityConverter.Convert rejects a non-null ConverterParameter; direction (visible-on-true vs collapsed-on-true) is configured via the VisibilityIfTrue property, not a binding parameter.

Source

Thrown at src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UITests/Views/Converters/FromNullableBoolToVisibilityConverter.cs:24

using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Media;

namespace Uno.UI.Samples.Converters
{
	public class FromNullableBoolToVisibilityConverter : IValueConverter
	{
		public FromNullableBoolToVisibilityConverter()
		{
			this.VisibilityIfTrue = Converters.VisibilityIfTrue.Visible;
		}

		public VisibilityIfTrue VisibilityIfTrue { get; set; }

		public object Convert(object value, Type targetType, object parameter, string language)
		{
			if (parameter != null)
			{
				throw new ArgumentException($"This converter does not use any parameters. You should remove \"{parameter}\" passed as parameter.");
			}

			bool inverse = this.VisibilityIfTrue == VisibilityIfTrue.Collapsed;

			Visibility visibilityOnTrue = (!inverse) ? Visibility.Visible : Visibility.Collapsed;
			Visibility visibilityOnFalse = (!inverse) ? Visibility.Collapsed : Visibility.Visible;

			if (value != null && !(value is bool))
			{
				throw new ArgumentException($"Value must either be null or of type bool. Got {value} ({value.GetType().FullName})");
			}

			var valueToConvert = value != null && System.Convert.ToBoolean(value, CultureInfo.InvariantCulture);

			return valueToConvert ? visibilityOnTrue : visibilityOnFalse;
		}

		public object ConvertBack(object value, Type targetType, object parameter, string language)

View on GitHub (pinned to 0418340488)

Solutions

  1. Remove ConverterParameter; set VisibilityIfTrue on the converter resource to choose direction.
  2. Audit all usages of the converter's resource key.

Example fix

<!-- before -->
<conv:FromNullableBoolToVisibilityConverter x:Key="Vis"/>
<Binding Path="Flag" Converter="{StaticResource Vis}" ConverterParameter="invert"/>
<!-- after -->
<conv:FromNullableBoolToVisibilityConverter x:Key="VisInvert" VisibilityIfTrue="Collapsed"/>
<Binding Path="Flag" Converter="{StaticResource VisInvert}"/>
Defensive patterns

Strategy: validation

Validate before calling

<!-- Configure direction via VisibilityIfTrue property, never ConverterParameter -->

Prevention

When it happens

Trigger: Supplying ConverterParameter while also (or instead of) setting VisibilityIfTrue on the resource; the parameter guard throws first.

Common situations: Migrating from an older visibility converter that used ConverterParameter to choose direction; leftover parameter after switching to the property-based approach.

Related errors


AI-assisted analysis of unoplatform/uno@0418340488 (2026-08-13). Data as JSON: /api/errors/00620ea5fc171b52. Report an issue: GitHub.