From 4d7697914ff76ddf9e2ae6d866d3d2ad960489f3 Mon Sep 17 00:00:00 2001 From: chenjie02_cd <836904362@qq.com> Date: Mon, 6 Sep 2021 20:06:15 +0800 Subject: [PATCH] add BooleanArr2BooleanConverter --- .../HandyControl_Net_40/Themes/Theme.xaml | 1 + .../HandyControl_Shared.projitems | 1 + .../Themes/Basic/Converters.xaml | 1 + .../HandyControl_Shared/Themes/Theme.xaml | 1 + .../Converter/BooleanArr2BooleanConverter.cs | 40 +++++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 src/Shared/HandyControl_Shared/Tools/Converter/BooleanArr2BooleanConverter.cs diff --git a/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml b/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml index ab59c83a..73429799 100644 --- a/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml +++ b/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml @@ -9,6 +9,7 @@ + diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems index b9a816d2..ce088db4 100644 --- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems +++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems @@ -83,6 +83,7 @@ + diff --git a/src/Shared/HandyControl_Shared/Themes/Basic/Converters.xaml b/src/Shared/HandyControl_Shared/Themes/Basic/Converters.xaml index 9657a184..b4c422d2 100644 --- a/src/Shared/HandyControl_Shared/Themes/Basic/Converters.xaml +++ b/src/Shared/HandyControl_Shared/Themes/Basic/Converters.xaml @@ -5,6 +5,7 @@ + diff --git a/src/Shared/HandyControl_Shared/Themes/Theme.xaml b/src/Shared/HandyControl_Shared/Themes/Theme.xaml index 957f8d0b..c8fd75a4 100644 --- a/src/Shared/HandyControl_Shared/Themes/Theme.xaml +++ b/src/Shared/HandyControl_Shared/Themes/Theme.xaml @@ -9,6 +9,7 @@ + diff --git a/src/Shared/HandyControl_Shared/Tools/Converter/BooleanArr2BooleanConverter.cs b/src/Shared/HandyControl_Shared/Tools/Converter/BooleanArr2BooleanConverter.cs new file mode 100644 index 00000000..b154e6be --- /dev/null +++ b/src/Shared/HandyControl_Shared/Tools/Converter/BooleanArr2BooleanConverter.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Windows.Data; +using HandyControl.Data; + +namespace HandyControl.Tools.Converter +{ + public class BooleanArr2BooleanConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + if (values == null) + { + return ValueBoxes.FalseBox; + } + + var arr = new List(); + foreach (var item in values) + { + if (item is bool boolValue) + { + arr.Add(boolValue); + } + else + { + return ValueBoxes.FalseBox; + } + } + + return ValueBoxes.BooleanBox(arr.All(item => item)); + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotSupportedException(); + } + } +}