In WPF, I want to create a hyperlink that navigates to the details of an object, and I want the text of the hyperlink to be the name of the object. Right now, I have this:
<TextBlock><Hyperlink Command='local:MyCommands.ViewDetails' CommandParameter='{Binding}'>Object Name</Hyperlink></TextBlock>
But I want ‘Object Name’ to be bound to the actual name of the object. I would like to do something like this:
<TextBlock><Hyperlink Command='local:MyCommands.ViewDetails' CommandParameter='{Binding}' Text='{Binding Path=Name}'/></TextBlock>
However, the Hyperlink class does not have a text or content property that is suitable for data binding (that is, a dependency property).
Any ideas?
It looks strange, but it works. We do it in about 20 different places in our app.
Hyperlinkimplicitly constructs a<Run/>if you put text in its "content", but in .NET 3.5<Run/>won’t let you bind to it, so you’ve got to explicitly use aTextBlock.Update: Note that as of .NET 4.0 the Run.Text property can now be bound: