私の質問ヘッダーが私の問題を正確に表しているかどうかはわかりません。説明するために最善を尽くします。
私はグリッドセルのDataTemplateを持っています:(グリッドはサードパーティの会社に属していますが、私の質問には重要ではありません)
<DataTemplate>
<TextBlock>
<Hyperlink Command="{Binding OpenLinkCommand}">
<Hyperlink.ToolTip>
<TextBlock Text="{Binding Data.MapLink}"/>
</Hyperlink.ToolTip>
<TextBlock Text="{Binding Data.MapLink}" TextDecorations="underline">
</Hyperlink>
</TextBlock>
</DataTemplate>
この DataTemplate にハイパーリンクを表示させたい (「Data.MapLink」はリンク値を含むオブジェクトです)。このリンクをクリックするたびに、コマンド「OpenLinkCommand」が起動されます。
問題は、「Data.MapLink」と「OpenLinkCommand」が異なる dataContext にあり、次の選択肢のいずれかを選択する必要があることです。
ハイパーリンクの dataContext をそのままにしておきます。コマンドは機能せず、ハイパーリンクは Data.MapLink 値を取得します。
ハイパーリンク dataContext をコマンド datacontext に変更します - コマンドは機能しますが、ハイパーリンク名は空になります。
残念ながら、これらの項目を同じ dataContext に配置するオプションがないため、dataContext が「X」であることをコマンドに伝え、dataContext が「Y」であることをハイパーリンクに伝える方法を見つける必要があります。
私の質問が明確であることを願っています。どうすればこの問題を解決できますか?