protected override object OnGetColumnValue(int columnIndex)
        {
            if (owner.GetIndexOfRow(this) == -1 || owner.Function == null)
            {
                return(null);
            }

            object value = null;

            if (columnIndex < owner.Function.Arguments.Count)
            {
                if (columnIndex >= Index.Count())
                {
                    return(null);
                }

                var values = owner.GetVariableForColumnIndex(columnIndex).Values;

                var argumentIndex = Index[columnIndex];
                if (values.Count > argumentIndex)
                {
                    value = values[argumentIndex];
                }
            }
            else
            {
                var componentIndex = columnIndex - owner.Function.Arguments.Count;
                if (componentIndex >= owner.Function.Components.Count)
                {
                    return(value);
                }

                var values = owner.GetVariableForColumnIndex(columnIndex).Values;

                // component column
                var index = Index;
                if (MultiDimensionalArrayHelper.IsIndexWithinShape(index, values.Shape))
                {
                    value = values[index];
                }
            }

            return(value);
        }
Beispiel #2
0
        protected override object OnGetColumnValue(int columnIndex)
        {
            if (owner.GetIndexOfRow(this) == -1 || owner.Function == null)
            {
                return(null);
            }

            object value = null;

            if (columnIndex < owner.Function.Arguments.Count)
            {
                var argumentIndex = Index[columnIndex];

                //log.DebugFormat("GetColumnValue: {0}, {1}", columnIndex, argumentIndex);

                var values = owner.Function.Arguments[columnIndex].Values;
                if (values.Count > argumentIndex)
                {
                    value = values[argumentIndex];
                }
            }
            else
            {
                var componentIndex = columnIndex - owner.Function.Arguments.Count;
                if (componentIndex >= owner.Function.Components.Count)
                {
                    return(value);
                }

                // component column
                var component = owner.Function.Components[componentIndex];
                var values    = component.Values;

                var index = Index;
                if (MultiDimensionalArrayHelper.IsIndexWithinShape(index, values.Shape))
                {
                    value = values[index];
                }
            }

            return(value);
        }