EnumerableToVisibilityConverter.cs 633 B

12345678910111213141516171819202122
  1. using System.Collections;
  2. using System.Linq;
  3. using System.Windows;
  4. namespace InABox.WPF;
  5. public class EnumerableToVisibilityConverter : AbstractConverter<IEnumerable?, Visibility>
  6. {
  7. public Visibility Empty { get; set; } = Visibility.Collapsed;
  8. public Visibility NotEmpty { get; set; } = Visibility.Visible;
  9. public override Visibility Convert(IEnumerable? value)
  10. {
  11. if (value == null)
  12. return Empty;
  13. var enumerable = value as object[] ?? value.Cast<object>().ToArray();
  14. if (!enumerable.GetEnumerator().MoveNext())
  15. return Empty;
  16. return NotEmpty;
  17. }
  18. }