51 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
} |