2012-10-26 61 views
3

我一直在尋找關於將HTML內容綁定到我的項目詳細信息頁面上翻頁視圖中的richtext塊的幫助信息,並且無法找到有關如何執行後續操作的任何信息。虛擬翻轉視圖中的XAML RichTextBlock

我正在構建一個簡單的新聞閱讀器應用程序,它從我要在我的flipview中顯示的提要中獲取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> ... 

內容是我的模型,我得到一個字符串屬性使用HtmlUtilities.ConvertToText(html)

完美的作品。但是,我需要圖像和標題(h1,h2等)在文章中。

我的問題是達到此目的的最佳方法是什麼?

解析html並創建運行,包含圖像等的內聯ui容器不是問題。我正在使用html敏捷包,但我的問題是如何將這些元素添加到richtextblocks塊集合中?

我想有上加載翻轉視圖中的事件,然後獲取當前的翻轉視圖的依賴對象(this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);然後走節點樹找到richtextblock,然後設置塊屬性,但它的作品的第一個項目,然後停止工作,我猜這與翻轉視圖如何虛擬化收藏有關。

說實話,它變得非常困惑,肯定是一件簡單的工作!?當然,xaml團隊意識到人們可能想要將圖像綁定到富文本塊?

我以爲你可以將富文本塊的內容綁定到屬性上我的模型然後返回塊,但富文本塊似乎沒有辦法做到這一點,至少從我能看到的。

如果任何人都可以幫助我,它將不勝感激。這真讓我抓狂。

回答

1

我基本上有同樣的問題。我的解決方案是將HTML分解爲一系列程序,並使用前面提到的this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex)來查找RichTextBlock,清除它的內聯並將所有參數添加到Inlines集合中。使用FlipView的SelectedItemChanged事件的調用過程

+0

這是我原來的計劃,但我有和事件觸發選擇改變和翻轉視圖加載,但它似乎每隔幾篇文章,ContainerFromIndex返回null。我猜測這是由於某種虛擬化。我找不到每次都有效的方法。 – Terry

+0

@Terry我有同樣的問題。我通過調用RichTextBlocks OnLoaded事件中的相同代碼來解決它,並且它在某種程度上起作用 –

+0

非常感謝Igor。這似乎解決了它。 – Terry