Ich hatte ein ähnliches Bedürfnis und löste es nach dem Vorbild von Andys Antwort... Ich habe einen BindableTextBlock erstellt:
class BindableTextBlock : TextBlock
{
public Inline BoundInline
{
get { return (Inline)GetValue(BoundInlineProperty); }
set { SetValue(BoundInlineProperty, value); }
}
public static readonly DependencyProperty BoundInlineProperty =
DependencyProperty.Register("BoundInline", typeof(Inline), typeof(BindableTextBlock),
new UIPropertyMetadata((PropertyChangedCallback)((d, e) => { ((BindableTextBlock)d).Inlines.Clear(); ((BindableTextBlock)d).Inlines.Add(e.NewValue as Inline); })));
}
Dann kann ich in meiner XAML an die BoundInline-Abhängigkeitseigenschaft binden:
<DataTemplate x:Key="TempTemplate">
<t:BindableTextBlock TextWrapping="Wrap" BoundInline="{Binding Path=TextInlines}" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" />
</DataTemplate>
Der einzige Nachteil dabei ist, dass man nur eine einzige Root-Inline an den Textblock binden kann, was in meinem Fall gut funktioniert hat, da mein Inhalt in eine Top-Level-Span verpackt ist.
0 Stimmen
Ich habe meine Antwort bearbeitet - ist Ihr Problem damit gelöst?