diff --git a/Toolkit.UI.Avalonia/BooleanToPasswordCharConverter.cs b/Toolkit.UI.Avalonia/BooleanToPasswordCharConverter.cs new file mode 100644 index 0000000..2924780 --- /dev/null +++ b/Toolkit.UI.Avalonia/BooleanToPasswordCharConverter.cs @@ -0,0 +1,21 @@ +using Avalonia.Data.Converters; +using Avalonia.Markup.Xaml; +using System.Globalization; + +namespace Toolkit.UI.Avalonia; + +public class BooleanToPasswordCharConverter : + MarkupExtension, + IValueConverter +{ + public override object ProvideValue(IServiceProvider serviceProvider) => + this; + + public char PasswordChar { get; set; } + + public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => + value is bool boolValue ? boolValue ? '\0' : PasswordChar : (object)PasswordChar; + + public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => + throw new NotImplementedException(); +} diff --git a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml index 519818b..cda8338 100644 --- a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml +++ b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml @@ -70,6 +70,7 @@ -