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); }
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); }