Files
FSI.BT.IR.Tools/FSI.Lib/NLogViewer/Helper/ListViewLayoutManager/ConverterGridViewColumn.cs
Maier Stephan SI 0b0508b042 Sicherung
2023-01-16 16:04:47 +01:00

59 lines
2.0 KiB
C#

using System;
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Data;
namespace DJ.Helper.ListViewLayoutManager
{
public abstract class ConverterGridViewColumn : GridViewColumn, IValueConverter
{
public Type BindingType => _BindingType;
private readonly Type _BindingType;
// ##############################################################################################################################
// Constructor
// ##############################################################################################################################
#region Constructor
protected ConverterGridViewColumn(Type bindingType)
{
if (bindingType == null)
{
throw new ArgumentNullException(nameof(bindingType));
}
this._BindingType = bindingType;
Binding binding = new Binding {Mode = BindingMode.OneWay, Converter = this};
DisplayMemberBinding = binding;
}
#endregion
// ##############################################################################################################################
// IValueConverter
// ##############################################################################################################################
#region IValueConverter
object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!_BindingType.IsInstanceOfType(value))
{
throw new InvalidOperationException();
}
return ConvertValue(value);
}
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
protected abstract object ConvertValue(object value);
#endregion
}
}