File: ThicknessTypeDesignConverter.cs
Web Access
Project: src\src\Controls\src\Core.Design\Controls.Core.Design.csproj (Microsoft.Maui.Controls.DesignTools)
using System;
using System.ComponentModel;
using Controls.Core.Design;
 
namespace Microsoft.Maui.Controls.Design
{
	public class ThicknessTypeDesignConverter : StringConverter
	{
		public override bool IsValid(ITypeDescriptorContext context, object value)
		{
			// MUST MATCH ThicknessTypeConverter.ConvertFrom
			string strValue = value?.ToString()?.Trim();
			if (string.IsNullOrEmpty(strValue))
				return false;
 
			if (strValue.IndexOf(",", StringComparison.Ordinal) != -1)
			{
				int? count = DesignTypeConverterHelper.TryParseNumbers(value?.ToString(), ',', maxCount: 4);
				return count == 2 || count == 4;
			}
			else
			{
				// Example: "1 2 3 4". Any count of numbers between 1 and 4 is valid.
				// Note that ThicknessTypeConverter is sensitive to spaces, e.g.
				// "1 2" is valid but "1   2" is not. We match its behavior here.
				return DesignTypeConverterHelper.TryParseNumbers(strValue.Trim(), ' ', maxCount: 4) is int;
			}
		}
	}
}