我正在使用标准的 Visual Studio 模板,并且我有一个 ItemsDetailPage,其中包含一个 FlipView,其 DataTemplate 中有一个 RichTextBlock。
我想将 RichTextBlock 块设置为我在文本中生成的自定义段落。我认为没有办法在 XAML 中绑定 RichTextBlocks Block,所以我在后面使用代码。在 RichTextBlock 的 Loaded 事件中,我设置了它的 Block,效果很好。但问题是,Loaded 事件仅在页面显示时被调用一次。当我“翻转”到另一个项目时,FlipView 的选定项目会发生变化,但不会再次调用 Loaded 事件(我认为这没关系)。
我尝试在 FlipViews SelectionChanged 项中设置 RichTextBlock 但这不起作用。
var ind = this.flipView.SelectedIndex;
var flipViewItem = this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);
if (flipViewItem != null)
{
var scroller = FindFirstElementInVisualTree<ScrollViewer>(flipViewItem);
var tb = scroller.FindDescendantByName("richTextColumns").FindDescendantByName("richTextBlock") as RichTextBlock;
SetRichContent(tb, (flipView.SelectedItem as ArticleViewModel).HtmlContent);
}
SetRichContent 被调用,设置了 RichTextBlocks 块,但在视觉上它们并没有改变,在几次翻转之后,整个应用程序在没有任何额外信息的情况下崩溃。
所以我的问题是,如何在每次翻转(选定项目更改)时在 RichTextBlock 上调用我自己的代码?