DataGrid
行と列があります。各行は、データ コレクション内の項目に対応しています。列の 1 つに、データ項目の名前のテキストを含むハイパーリンクを設定したいのですが、ハイパーリンクをクリックすると、そのハイパーリンクの項目 (それがある行) のコマンドが実行されます。
これまでのところ、それが理にかなっていることを願っています。
私の問題:ハイパーリンクをバインドしCommandParameter
て現在の行のデータ項目を使用するにはどうすればよいですか? ランダムなセル (行 3 列 2 など) を選択し、行 1 列 1 のハイパーリンクをクリックすると、現在のアイテムが行 1 ではなく行 3 のアイテムであると表示されるという問題が発生しています!! !
これは私のxamlコードです:
<DataGridTemplateColumn Width="80">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}, Path=DataContext.NavigateToFormCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}, Path=CurrentItem}">
<TextBlock Text="{Binding dataName}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
ハイパーリンクがあるセルをクリックしてハイパーリンクをクリックすると、すべて正常に動作します。しかし、それは本当に良いワークフローではありません.ユーザーがハイパーリンクをクリックすると、適切なアイテムが表示されるはずです...