diff --git a/src/Avalonia.Controls.ColorPicker/Converters/ValueConverterGroup.cs b/src/Avalonia.Controls.ColorPicker/Converters/ValueConverterGroup.cs
new file mode 100644
index 0000000000..2710c220f4
--- /dev/null
+++ b/src/Avalonia.Controls.ColorPicker/Converters/ValueConverterGroup.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using Avalonia.Data.Converters;
+
+namespace Avalonia.Controls.Primitives.Converters
+{
+ ///
+ /// Converter to chain together multiple converters.
+ ///
+ public class ValueConverterGroup : List, IValueConverter
+ {
+ ///
+ ///
+ public object? Convert(
+ object? value,
+ Type targetType,
+ object? parameter,
+ CultureInfo culture)
+ {
+ object? curValue;
+
+ curValue = value;
+ for (int i = 0; i < Count; i++)
+ {
+ curValue = this[i].Convert(curValue, targetType, parameter, culture);
+ }
+
+ return curValue;
+ }
+
+ ///
+ public object? ConvertBack(
+ object? value,
+ Type targetType,
+ object? parameter,
+ CultureInfo culture)
+ {
+ object? curValue;
+
+ curValue = value;
+ for (int i = (Count - 1); i >= 0; i--)
+ {
+ curValue = this[i].ConvertBack(curValue, targetType, parameter, culture);
+ }
+
+ return curValue;
+ }
+ }
+}