This repository has been archived on 2024-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
Sic06/FrameworkLocal/UIClient/DataGridTransform/DataGrid/Microsoft/Windows/Controls/DataGridHeadersVisibilityTo...

71 lines
2.9 KiB
C#

//---------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//---------------------------------------------------------------------------
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace ExtendedGrid.Microsoft.Windows.Controls
{
/// <summary>
/// Converts DataGridHeadersVisibility to Visibility based on the given parameter.
/// </summary>
[Localizability(LocalizationCategory.NeverLocalize)]
internal sealed class DataGridHeadersVisibilityToVisibilityConverter : IValueConverter
{
/// <summary>
/// Convert DataGridHeadersVisibility to Visibility
/// </summary>
/// <param name="value">DataGridHeadersVisibility</param>
/// <param name="targetType">Visibility</param>
/// <param name="parameter">DataGridHeadersVisibility that represents the minimum DataGridHeadersVisibility that is needed for a Visibility of Visible</param>
/// <param name="culture">null</param>
/// <returns>Visible or Collapsed based on the value & converter mode</returns>
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;
}
}
/// <summary>
/// Not implemented
/// </summary>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}