//--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Globalization; using System.Windows; using System.Windows.Data; namespace ExtendedGrid.Microsoft.Windows.Controls { /// /// Converts DataGridHeadersVisibility to Visibility based on the given parameter. /// [Localizability(LocalizationCategory.NeverLocalize)] internal sealed class DataGridHeadersVisibilityToVisibilityConverter : IValueConverter { /// /// Convert DataGridHeadersVisibility to Visibility /// /// DataGridHeadersVisibility /// Visibility /// DataGridHeadersVisibility that represents the minimum DataGridHeadersVisibility that is needed for a Visibility of Visible /// null /// Visible or Collapsed based on the value & converter mode public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var visible = false; if (value is DataGridHeadersVisibility && parameter is DataGridHeadersVisibility) { var valueAsDataGridHeadersVisibility = (DataGridHeadersVisibility)value; var parameterAsDataGridHeadersVisibility = (DataGridHeadersVisibility)parameter; switch (valueAsDataGridHeadersVisibility) { case DataGridHeadersVisibility.All: visible = true; break; case DataGridHeadersVisibility.Column: visible = parameterAsDataGridHeadersVisibility == DataGridHeadersVisibility.Column || parameterAsDataGridHeadersVisibility == DataGridHeadersVisibility.None; break; case DataGridHeadersVisibility.Row: visible = parameterAsDataGridHeadersVisibility == DataGridHeadersVisibility.Row || parameterAsDataGridHeadersVisibility == DataGridHeadersVisibility.None; break; } } if (targetType == typeof(Visibility)) { return visible ? Visibility.Visible : Visibility.Collapsed; } else { return DependencyProperty.UnsetValue; } } /// /// Not implemented /// public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }