Files
BeWoPlaner/BeWo/Converter/CollectionCountToVisibilityConverter.cs

51 lines
1.2 KiB
C#

using System;
using System.Collections;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Data;
namespace BeWo.Converter
{
public class CollectionCountToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
int count;
switch (value)
{
case int i:
count = i;
break;
case ICollection collection:
count = collection.Count;
break;
case IEnumerable enumerable:
count = enumerable.Cast<object>().Count();
break;
default:
return Visibility.Collapsed;
}
if (parameter is string s && s == "reverse")
{
return count > 0 ? Visibility.Collapsed : Visibility.Visible;
}
return count > 0 ? Visibility.Visible : Visibility.Collapsed;
}
catch (Exception)
{
return Visibility.Collapsed;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}