示例#1
0
        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;
            }));
        }
示例#2
0
        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;
            }));
        }