static void grid_CustomUnboundColumnData(object sender, GridColumnDataEventArgs e)
        {
            if (string.IsNullOrEmpty(GetComplexFieldName(e.Column)))
            {
                return;
            }
            ComplextPath complexPath = GetComplexPath(e.Column);
            GridControl  grid        = (GridControl)sender;

            if (e.IsGetData)
            {
                e.Value = complexPath.CalcValue(grid.GetRowByListIndex(e.ListSourceRowIndex));
            }
            if (e.IsSetData)
            {
                complexPath.SetValue(grid.GetRowByListIndex(e.ListSourceRowIndex), e.Value);
            }
        }
 static void SetComplexPath(GridColumn obj, ComplextPath value)
 {
     obj.SetValue(ComplexPathProperty, value);
 }