WPF中,我想要创造一个超级链接,导航的详细信息的对象,并且我想要的文字的超级链接以该名称的对象。现在我有这样的:

<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中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}" />

其他提示

这对我来说是一个<!>“Page <!>”;

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

在窗户存放应用程序(窗电话8.1RT应用程序)上面的例子不起作用,使用HyperlinkButton和绑定的内容和执行以下操作之一属性作为ususal.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top