1. ホーム
  2. wpf

[解決済み] データバインディングでWPFハイパーリンクのテキストを設定するにはどうすればよいですか?

2022-06-28 12:40:06

質問

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>

しかし、Hyperlinkクラスにはデータバインディングに適したtextやcontentプロパティ(つまり、依存性プロパティ)がありません。

何かアイデアはありますか?

どのように解決するのですか?

奇妙に見えますが、動作します。私たちのアプリでは、約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}" />