У меня есть простое решение.
Используя DataTemplate, вы можете указать шаблон для класса, например, LinkItem, который содержит ваш текст, и гиперссылку.
public class LinkItem
{
public string Text { get; set; }
public string Hyperlink { get; set; }
public LinkItem(string text, string hyperlink)
{
Text = text;
Hyperlink = hyperlink;
}
}
// XAML Data template
<DataTemplate DataType="{x:Type HyperlinkDemo:LinkItem}">
<TextBlock>
<TextBlock Text="{Binding Text}" Margin="1" />
<Hyperlink>
<TextBlock Text="{Binding Hyperlink}" Margin="1" />
</Hyperlink>
</TextBlock>
</DataTemplate>
// List box definition
<ListBox ItemsSource="{Binding LinkItems}" />
Красиво и просто. Просто добавьте связку LinkItem в свою коллекцию LinkItems, и вы получите хорошее сочетание текста и гиперссылки в своем списке.
Вы также можете добавить команду в классе LinkItem, чтобы сделать ее более интересной, и связать команду с гиперссылкой.
<Hyperlink Command="{Binding HyperlinkCommand}"> ....