EitherNotNullConverter.cs 776 B

1234567891011121314151617181920212223242526272829
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Globalization;
  4. using Avalonia.Data.Converters;
  5. namespace Dock.Avalonia.Converters;
  6. /// <summary>
  7. /// Takes a list of values and returns the first non-null value.
  8. /// </summary>
  9. public class EitherNotNullConverter : IMultiValueConverter
  10. {
  11. /// <summary>
  12. /// Gets <see cref="EitherNotNullConverter"/> instance.
  13. /// </summary>
  14. public static readonly EitherNotNullConverter Instance = new EitherNotNullConverter();
  15. /// <inheritdoc/>
  16. public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
  17. {
  18. foreach (var value in values)
  19. {
  20. if (value != null)
  21. return value;
  22. }
  23. return values;
  24. }
  25. }