В настоящее время я тестирую возможности компонента DevExpress GridView.Я создал пользовательское сопоставление данных, но кажется, что событие e.IsSetData не вызывается после изменения строки / ячейки.
Возвращаемый объект всегда похож на
DataRowModel {ID = "SomeValue", Properties = NULL};
Буду очень признателен за вашу помощь.
Пожалуйста, найдите логику сетки и объект модели ниже.
Заранее спасибо.Константин
settings.CustomUnboundColumnData += (s, e) =>
{
var dynamicProperties = Model.DataRowModels[e.ListSourceRowIndex].Properties;
if (dynamicProperties != null)
{
var propertyIdString = e.Column.FieldName;
var currentValueColumn = dynamicProperties.SingleOrDefault(p => p.PropertyId.ToString().Equals(propertyIdString));
if (currentValueColumn != null)
{
if (e.IsGetData)
{
if (currentValueColumn == null)
{
return;
}
switch (currentValueColumn.RenderType)
{
case RenderType.String:
e.Value = currentValueColumn.StringValue;
break;
case RenderType.Integer:
e.Value = currentValueColumn.IntValue;
break;
case RenderType.Boolean:
e.Value = currentValueColumn.BooleanValue;
break;
case RenderType.DateTime:
e.Value = currentValueColumn.DateTimeValue;
break;
default:
e.Value = currentValueColumn.StringValue;
break;
}
}
if (e.IsSetData && e.Value != null)
{
currentValueColumn.StringValue = e.Value.ToString();
}
}
}
};
public class DataRowModel
{
public int Id{ get; set; } -----> The correct value
public List<DataProperty> Properties { get; set; } ------> This is always null
}