The requested page is not available for the requested platform. You are viewing the content for .NET Framework 4.5.2+ platform.
.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+
.NET Core 3.0+
Row

DataSourceOptionsBase.CellValueConverter Property

Gets or sets the converter that transforms cell values into custom objects and back.

Namespace: DevExpress.Spreadsheet

Assembly: DevExpress.Spreadsheet.v19.2.Core.dll

Declaration

public IBindingRangeValueConverter CellValueConverter { get; set; }
Public Property CellValueConverter As IBindingRangeValueConverter
public IBindingRangeValueConverter CellValueConverter { get; set; }
Public Property CellValueConverter As IBindingRangeValueConverter
public IBindingRangeValueConverter CellValueConverter { get; set; }
Public Property CellValueConverter As IBindingRangeValueConverter

Property Value

Type Description
IBindingRangeValueConverter

An object implementing the IBindingRangeValueConverter interface which provides methods for converting cell values into required data types and back.

Property Value

Type Description
IBindingRangeValueConverter

An object implementing the IBindingRangeValueConverter interface which provides methods for converting cell values into required data types and back.

Property Value

Type Description
IBindingRangeValueConverter

An object implementing the IBindingRangeValueConverter interface which provides methods for converting cell values into required data types and back.

Examples

This code snippet contains the code of the converter which provides the IBindingRangeValueConverter.TryConvertFromObject method used to convert fields of a custom WeatherReport object for proper display in a worksheet and the IBindingRangeValueConverter.ConvertToObject method for storing cell values in the fields of a custom object.

public class MyWeatherConverter : IBindingRangeValueConverter {
    public object ConvertToObject(CellValue value, Type requiredType, int columnIndex) {
        if (requiredType == typeof(DateTime))
            return value.DateTimeValue;
        if (requiredType == typeof(Weather)) {
            if (requiredType == typeof(Weather)) {
                Weather w;
                if (Enum.TryParse(value.TextValue, out w)) return w;
                return Weather.Undefined;
            }
            else
                return value.TextValue;
        }
        if (requiredType == typeof(List<HourlyReport>))
            return new List<HourlyReport>();
        return value.TextValue;
    }
    public CellValue TryConvertFromObject(object value) {
        if (value is DateTime) {
            return ((DateTime)value).ToString("MMM-dd");
        }
        if (value is Weather) {
            return value.ToString();
        }
        if (value is List<HourlyReport>) {
            var hourly = (List<HourlyReport>)value;
            if (hourly.Count == 0) return "Undefined";
            var high = hourly
                .OrderByDescending(p => p.Temperature)
                .FirstOrDefault()
                .Temperature;
            var low = hourly
                .OrderBy(p => p.Temperature)
                .FirstOrDefault()
                .Temperature;
            return String.Format("High - {0}, Low - {1}", high, low);
        }

        return CellValue.TryCreateFromObject(value);
    }
}
See Also