using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using System; using System.Windows; using System.Windows.Data; namespace MediaBrowser.UI.Converters { /// /// Class BaseItemImageVisibilityConverter /// class BaseItemImageVisibilityConverter : IValueConverter { /// /// Converts a value. /// /// The value produced by the binding source. /// The type of the binding target property. /// The converter parameter to use. /// The culture to use in the converter. /// A converted value. If the method returns null, the valid null value is used. public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { var item = value as BaseItemDto; if (item != null) { var paramString = parameter as string; var vals = paramString.Split(','); var imageType = (ImageType)Enum.Parse(typeof(ImageType), vals[0], true); bool reverse = vals.Length > 1 && vals[1].Equals("reverse", StringComparison.OrdinalIgnoreCase); return GetVisibility(item, imageType, reverse); } return Visibility.Collapsed; } /// /// Gets the visibility. /// /// The item. /// The type. /// if set to true [reverse]. /// Visibility. private Visibility GetVisibility(BaseItemDto item, ImageType type, bool reverse) { var hasImageVisibility = reverse ? Visibility.Collapsed : Visibility.Visible; var hasNoImageVisibility = reverse ? Visibility.Visible : Visibility.Collapsed; if (type == ImageType.Logo) { return item.HasLogo || !string.IsNullOrEmpty(item.ParentLogoItemId) ? hasImageVisibility : hasNoImageVisibility; } return item.HasPrimaryImage ? hasImageVisibility : hasNoImageVisibility; } /// /// Converts a value. /// /// The value that is produced by the binding target. /// The type to convert to. /// The converter parameter to use. /// The culture to use in the converter. /// A converted value. If the method returns null, the valid null value is used. /// public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } }