3

商品詳細ページのフリップ ビュー内のリッチテキスト ブロックに html コンテンツをバインドする方法について、さまざまな方法でヘルプを探しています。

フリップビューに表示したいフィードから html コンテンツを取得する、単純なニュース リーダー アプリを作成しています。

新しいデフォルト アイテムの詳細ページを作成し、コレクションをバインドしました。

this.DefaultViewModel["Group"] = feedItem.Category;
this.DefaultViewModel["Items"] = feedItem.Category.Items;
this.flipView.SelectedItem = feedItem; 

次に、フリップビューの 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 の解析と run の作成、画像などを含むインライン ui コンテナーは問題ありません。そのためにhtmlアジリティパックを使用していますが、これらの要素をrichtextblocksブロックコレクションに追加するにはどうすればよいですか?

フリップ ビューのイベントをロードしてから、現在のフリップ ビューの依存関係オブジェクトを取得しようとしました (this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);ノード ツリーをたどってリッチテキスト ブロックを見つけ、ブロック プロパティを設定しましたが、最初の項目で機能し、その後機能しなくなりました。フリップ ビューがコレクションを仮想化する方法と関係があります。

そして正直なところ、単純なタスクのはずなのに、本当に混乱しています!? xaml チームは、人々が画像をリッチ テキスト ブロックにバインドしたいと考えていることに気付いたのでしょうか?

リッチ テキスト ブロックのコンテンツをモデルのプロパティにバインドして、ブロックを返すことができると思っていましたが、少なくとも私ができる限り、リッチ テキスト ブロックにはそれを行う方法がないようです。見る。

誰かが私を助けることができれば、それは大歓迎です。これは私を夢中にさせています。

4

1 に答える 1

1

私は基本的に同じ問題を抱えていました。私の解決策は、HTML を段落のリストに分割し、前述を使用しthis.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex)て RichTextBlock を見つけ、そのインラインをクリアして、すべてのパラグラフをインライン コレクションに追加することです。FlipView の SelectedItemChanged イベントによる呼び出しプロセス

于 2012-10-26T20:17:07.233 に答える