在WPF中,我想创建一个超链接,导航到对象的详细信息,并且希望超链接的文本是对象的名称。
<TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}">Object Name</Hyperlink></TextBlock>
但我希望"Object Name"绑定到对象的实际名称。我想做如下操作:
<TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}" Text="{Binding Path=Name}"/></TextBlock>
但是,Hyperlink类没有适合于数据绑定的text或content属性(即依赖项属性)。
有什么想法吗?
3条答案
按热度按时间dzhpxtsq1#
这看起来很奇怪,但它确实有效,我们在应用程序中大约20个不同的地方都是这样做的。如果你把文本放在它的“内容”中,
Hyperlink
会隐式地构造一个<Run/>
,但是在.NET 3.5中<Run/>
不会让你绑定到它,所以你必须显式地使用一个TextBlock
。更新:请注意,从.NET 4.0开始,Run.Text property现在可以绑定:
agxfikkp2#
这在一个“页面”中对我起作用了。
92dk7w1h3#
在Windows应用商店应用程序(和Windows Phone 8.1 RT应用程序)上,上面的示例不起作用,请使用HyperlinkButton并按照惯例绑定Content和NavigateUri属性。