public IBindingContextItem ContextItemFactory(IBindingContextElement owner) { string name; IBindingContextItem nestedContextItem = NestedBindingDefinition?.ContextItemFactory(owner); if (nameBindingDefinition != null) { object obj = nameBindingDefinition.ResolveBinding(owner.DataSource); name = rootName.EmptyIfNull() + (obj?.ToString() ?? string.Empty); } else { if (usePos) { name = definition.Name.Replace(POS_KEYWORD, "_" + owner == null ? string.Empty : owner.Index.ToString()); } else if (useAllPos) { StringBuilder nameBuilder = new StringBuilder(); IBindingContextElement currentOwner = owner; while (currentOwner != null) { nameBuilder.Insert(0, "_" + currentOwner.Index); currentOwner = currentOwner.ParentPart.ParentContext.Parent; } nameBuilder.Insert(0, definition.Name.Replace(ALL_POS_KEYWORD, string.Empty)); name = nameBuilder.ToString(); } else { name = definition.Name; } } return(new ExcelContextItemNamedRange(owner, name, this, nestedContextItem)); }
public override object ResolveBinding(object dataSource) { dataSource = realBindingDefinition.ResolveBinding(dataSource); return(childBindingDefinition.ResolveBinding(dataSource)); }
public override object UpdateDataSource(object dataSource, object data) { dataSource = realBindingDefinition.ResolveBinding(dataSource); return(childBindingDefinition.UpdateDataSource(dataSource, data)); }