我一直在寻找有关将html内容绑定到我的项目详细信息页面上的翻转视图中的richtext块的帮助的帮助,并且无法找到有关如何做我所追求的任何信息。
我正在构建一个简单的新闻阅读器应用程序,它从我想要在我的flipview中显示的Feed中获取html内容。
我创建了一个新的默认项目详细信息页面并绑定了我的集合:
this.DefaultViewModel["Group"] = feedItem.Category;
this.DefaultViewModel["Items"] = feedItem.Category.Items;
this.flipView.SelectedItem = feedItem;
然后在我的flipview的DataTemplate中:
<common:RichTextColumns x:Name="richTextColumns" Margin="117,0,117,47">
<RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}">
<Paragraph>
<Run FontWeight="SemiLight" Text="{Binding Content}"/>
</Paragraph> ...
Content是我模型中的字符串属性,我使用HtmlUtilities.ConvertToText(html)
完美无缺。但是,我需要文章中的图像和标题(h1,h2等)。
我的问题是实现这一目标的最佳方法是什么?
解析html并创建运行,包含图像等的内联ui容器不是问题。我正在使用html敏捷包,但我的问题是如何将这些元素添加到richtextblocks块集合中?
我尝试加载翻转视图上的事件,然后获取当前翻转视图依赖项对象(this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);
,然后遍历节点树以查找richtextblock然后设置blocks属性,但它适用于第一个item然后停止工作,我猜这与翻转视图如何虚拟化集合有关。
说实话,它确实是一个简单的任务真的让人困惑!?当然xaml团队意识到人们可能想要将图像绑定到富文本块?
我以为你能够将富文本块的内容绑定到我的模型上的属性,然后返回块,但富文本块似乎没有任何方法可以做到这一点,至少从我能看到的。
如果有人能帮助我,我将不胜感激。这让我发疯了。
答案 0 :(得分:1)
我基本上遇到了同样的问题。我的解决方案是将HTML分解为一个pragraph列表并使用提到的this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex)
来查找RichTextBlock,清除其Inlines并将所有paragprah添加到Inlines集合中。使用FlipView的SelectedItemChanged事件调用进程