Question

Dans WPF, je souhaite créer un lien hypertexte menant aux détails d’un objet et je souhaite que le texte du lien hypertexte soit le nom de l’objet. En ce moment, j'ai ceci:

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

Mais je veux " Nom de l'objet " être lié au nom réel de l'objet. Je voudrais faire quelque chose comme ça:

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

Toutefois, la classe de lien hypertexte ne possède pas de propriété text ou content adaptée à la liaison de données (c'est-à-dire une propriété de dépendance).

Des idées?

Était-ce utile?

La solution

Cela semble étrange, mais cela fonctionne. Nous le faisons à environ 20 endroits différents dans notre application. Hyperlink construit implicitement un <Run/> si vous mettez du texte dans son & contenu &, mais dans .NET 3.5 TextBlock ne vous permet pas de le lier, vous devez donc utiliser explicitement un <=>.

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

Mettre à jour : notez qu'à partir de .NET 4.0, le La propriété Run.Text peut maintenant être liée:

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

Autres conseils

Cela a fonctionné pour moi dans une & "page &";

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

Sur l'application Windows Store (et l'application Windows Phone 8.1 RT) ci-dessus, l'exemple ci-dessus ne fonctionne pas, utilisez HyperlinkButton et liez les propriétés Content and NavigateUri comme d'habitude.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top