using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; namespace UIShare.Converters { public class BoolArrayConverter : IValueConverter { // bool[] -> string public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is bool[] arr) return "[" + string.Join(",", arr.Select(b => b.ToString().ToLower())) + "]"; return ""; } // string -> bool[] public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is string s) { s = s.Trim('[', ']', ' '); if (string.IsNullOrWhiteSpace(s)) return Array.Empty(); var parts = s.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); return parts.Select(p => { if (bool.TryParse(p, out var b)) return b; if (p == "1") return true; if (p == "0") return false; return false; }).ToArray(); } return Array.Empty(); } } }