我有一个DataGrid
行和列。每行对应于我的数据集合中的一个项目。对于我的一个专栏,我想要一个带有我的数据项名称文本的超链接,当我单击超链接时,它将对该超链接的项目(它所在的行)执行一个命令
希望到目前为止这是有道理的。
我的问题:如何绑定超链接CommandParameter
以使用当前行的数据项?我遇到了一个问题,如果我选择了一些随机单元格(比如第 3 行第 2 列)并单击第 1 行第 1 列中的超链接,它会说当前项目是第 3 行中的项目而不是第 1 行! !
这是我的 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>
如果我单击超链接所在的单元格,然后单击超链接,一切都会正常工作。但这不是一个非常好的工作流程......如果用户单击超链接,它应该有正确的项目......