如何通过数据绑定来设置WPF超链接的文本?

在WPF中,我想要创build一个导航到对象的细节的超链接,我希望超链接的文本是对象的名称。 现在,我有这个:

<TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}">Object Name</Hyperlink></TextBlock> 

但是我想要“对象名称”绑定到对象的实际名称。 我想要做这样的事情:

 <TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}" Text="{Binding Path=Name}"/></TextBlock> 

但是,超链接类没有适合于数据绑定(即,依赖项属性)的文本或内容属性。

有任何想法吗?

它看起来很奇怪,但是很有效。 我们在我们的应用程序中的大约20个不同的地方。 如果你把文本放在它的“内容”中, Hyperlink隐式地构造一个<Run/> ,但是在.NET 3.5中, <Run/>不允许你绑定它,所以你必须明确地使用一个TextBlock

 <TextBlock> <Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}"> <TextBlock Text="{Binding Path=Name}"/> </Hyperlink> </TextBlock> 

更新 :请注意,从.NET 4.0开始, Run.Text属性现在可以被绑定:

 <Run Text="{Binding Path=Name}" /> 

这在我的“页面”中工作。

 <TextBlock> <Hyperlink NavigateUri="{Binding Path}"> <TextBlock Text="{Binding Path=Path}"/> </Hyperlink></TextBlock> 

在Windows Store应用程序(和Windows Phone 8.1 RT应用程序)上面的示例不起作用,请使用HyperlinkBut​​ton并将Content和NavigateUri属性绑定为ususal。