Я пытаюсь преобразовать пользовательский HTML-текст в FormattedString xaml для любой метки. Там у меня есть тег <a/>
, в котором он преобразуется в диапазон с TapGestureRecognizer:
<xsl:template match="A | a" priority="9">
<Span TextDecorations="Underline">
<xsl:attribute name="Text">
<xsl:apply-templates />
</xsl:attribute>
<Span.GestureRecognizers>
<TapGestureRecognizer Command="{{Binding PopupContentCommand}}">
<xsl:attribute name="CommandParameter">
<xsl:value-of select="@href" />
</xsl:attribute>
</TapGestureRecognizer>
</Span.GestureRecognizers>
</Span>
</xsl:template>
Конвертер работает хорошо, проблема в том, что привязка этой команды не вызывается. Когда мы загружаем new FormattedString().LoadFromXaml(xaml)
преобразованный html в xaml, команда, кажется, имеет привязку:
Но эта привязка не повышается. После этого я пытаюсь очистить GestureRecognizer и создать новый TapGestureRecognizer, добавив его снова. Но это тоже не сработало. BindingContext также является правильным.
Это делается путем привязки прикрепленного свойства:
<Label attachedProperties:Properties.Html="{Binding HtmlText}" />