private IEnumerable <InlineHolder> CreateTemplateInstance(IEnumerable <object> textSourcePart) { return(textSourcePart.Select(o => { InlineHolder result; var template = TextTemplates.FirstOrDefault(dt => (Type)dt.DataType == o.GetType()); if (template == null) { result = new InlineHolder { Inlines = new InlineSimpleCollection(new Inline[] { new Run(o.ToString()) }) }; } else { result = (InlineHolder)template.LoadContent(); result.DataContext = o; foreach (var inline in result.Inlines) { inline.DataContext = o; } } return result; })); }
private IEnumerable <BlockHolder> CreateTemplateInstance(IEnumerable <object> textSourcePart) { return(textSourcePart.Select(o => { BlockHolder result; var template = TextTemplates.FirstOrDefault(dt => (Type)dt.DataType == o.GetType()); if (template == null) { var paragraph = new Paragraph(); paragraph.Inlines.Add(new Run(o.ToString())); result = new BlockHolder { Blocks = new BlockSimpleCollection(new[] { paragraph }) }; } else { result = (BlockHolder)template.LoadContent(); result.DataContext = o; foreach (var block in result.Blocks) { block.DataContext = o; } } return result; })); }