Я использую стандартные шаблоны Visual Studio, и у меня есть ItemsDetailPage, который содержит FlipView с RichTextBlock в своем DataTemplate.
Я хочу установить блок RichTextBlock в мои пользовательские абзацы, сгенерированные в тексте. Я думаю, что нет способа связать блок RichTextBlocks в XAML, поэтому я использую код позади. В событии Loaded RichTextBlock я устанавливаю его блок, который работает нормально. Но проблема в том, что событие Loaded вызывается только один раз при отображении страницы. Когда я «переворачиваю» на другой элемент, выбранный элемент FlipView изменяется, но событие Loaded больше не вызывается (я думаю, это нормально).
Я попытался установить RichTextBlock в элементе FlipViews SelectionChanged, но это не сработало.
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 при каждом переворачивании (изменении выбранного элемента)?