diff --git a/XSDVisualiser.Desktop/Converters/CollectionHasItemsConverter.cs b/XSDVisualiser.Desktop/Converters/CollectionHasItemsConverter.cs
new file mode 100644
index 0000000..48a53c7
--- /dev/null
+++ b/XSDVisualiser.Desktop/Converters/CollectionHasItemsConverter.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections;
+using System.Globalization;
+using Avalonia.Data.Converters;
+
+namespace XSDVisualiser.Desktop.Converters
+{
+ ///
+ /// Returns true if the bound value is a collection with at least one item. Supports IEnumerable and ICollection.
+ /// Optional parameter "Invert" to invert the boolean result.
+ ///
+ public sealed class CollectionHasItemsConverter : IValueConverter
+ {
+ public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
+ {
+ var hasItems = false;
+ switch (value)
+ {
+ case ICollection coll:
+ hasItems = coll.Count > 0;
+ break;
+ case IEnumerable enumerable:
+ {
+ var enumerator = enumerable.GetEnumerator();
+ hasItems = enumerator.MoveNext();
+ break;
+ }
+ }
+
+ var invert = parameter is string s && s.Equals("Invert", StringComparison.OrdinalIgnoreCase);
+ return invert ? !hasItems : hasItems;
+ }
+
+ public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
+ => throw new NotSupportedException();
+ }
+}
diff --git a/XSDVisualiser.Desktop/MainWindow.axaml b/XSDVisualiser.Desktop/MainWindow.axaml
index 1bdf804..6c4fb51 100644
--- a/XSDVisualiser.Desktop/MainWindow.axaml
+++ b/XSDVisualiser.Desktop/MainWindow.axaml
@@ -9,6 +9,7 @@
+
@@ -129,7 +130,7 @@
-
+
@@ -140,7 +141,7 @@
-
+