2012-10-26 2 views
3

내 세부 정보 페이지의 내 플립보기 안의 richtext 블록에 html 콘텐츠를 바인딩하는 것과 관련하여 도움이 필요하거나 도움이되지 않았으므로 어떻게했는지에 대한 정보를 찾을 수 없습니다.XAML RichTextBlock 가상화 된 플립보기

나는 내 플립보기에 표시하려는 피드에서 html 콘텐츠를 가져 오는 간단한 뉴스 리더 앱을 제작하고 있습니다.

나는 새 기본 항목의 세부 정보 페이지를 생성하고 내 컬렉션에 바인딩 : 내 flipview 내 DataTemplate을 내부 그리고
this.DefaultViewModel["Group"] = feedItem.Category; 
this.DefaultViewModel["Items"] = feedItem.Category.Items; 
this.flipView.SelectedItem = feedItem; 

가 :

<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 등)이 필요합니다.

제 질문은 이것을 달성하는 가장 좋은 방법입니다.

이미지를 포함하는 인라인 UI 컨테이너와 HTML을 구문 분석하고 실행을 생성하는 것은 문제가되지 않습니다. 그,하지만 html 민첩성 팩을 사용하여 내 질문에 어떻게 richtextblocks 블록 컬렉션에 이러한 요소를 추가 할 수 있습니다?

플립보기에서 이벤트를로드하고 현재 플립 뷰 종속성 객체 (this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);)를 얻은 다음 노드 트리를 이동하여 richtextblock을 찾은 다음 블록 속성을 설정했지만 첫 번째 항목에서 작동 한 다음 플립 뷰가 컬렉션을 가상화하는 방법과 관련이 있다고 생각합니다.

솔직히 말해서, 그 작업은 분명히 간단한 작업 일 것입니다. 분명히 xaml 팀은 사람들이 서식있는 텍스트 블록에 이미지를 바인딩하는 방법

리치 텍스트 블록의 내용을 다음과 같은 속성에 바인딩 할 수있을 것이라고 생각했습니다. 그런 다음 블록을 반환하는 내 모델이지만 리치 텍스트 블록은 적어도 내가 볼 수있는 것에서는 그렇게 할 수있는 방법이없는 것처럼 보입니다.

누구든지 나를 도울 수 있으면 크게 감사 할 것입니다. 이것은 나를 미치게 만든다.

답변

1

기본적으로 동일한 문제가있었습니다. 내 해결책은 HTML을 pragraph 목록으로 분해하고 언급 된 this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex)을 사용하여 RichTextBlock을 찾고 Inlines을 지우고 모든 paragprah를 Inlines 컬렉션에 추가합니다. 콜 나의 원래 계획했던 FlipView`s SelectedItemChanged 이벤트

+0

와 과정,하지만 난이 이벤트는로드 선택 변경 및 플립보기를 발사하지만 ContainerFromIndex는 null를 돌려, 모든 몇 가지 기사를 보인다. 내가 추측하고있는 것은 일종의 가상화 때문입니다. 매번 작동하는 방법을 찾을 수 없습니다. – Terry

+0

@Terry 나는 같은 문제가있다. RichTextBlocks OnLoaded 이벤트에서 같은 코드를 호출하여 해결했습니다. 어떻게 든 작동합니다. –

+0

큰 감사 Igor. 그것은 그것을 해결하는 것 같았다. – Terry