我有一个数据网格,其中的行绑定(bind)到 View 模型。
在我的第一列中,我有一个图像控件,它绑定(bind)到该行中的 itemno。这工作得很好。
现在,我想要在该图像上显示一个工具提示,以显示该图像的放大版本。我认为这很容易,但我意识到,工具提示可能无法获取行的数据上下文。
那么,如何获取工具提示,以绑定(bind)到与行绑定(bind)到的相同数据? 在下面的代码中,工具提示上的 ItemNo 为 null,但在“父”图像控件上,它具有正确的值。
<DataGridTemplateColumn Header="Image" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<controls:ItemImage Width="16" Height="16" DataContext="{Binding ItemNo, IsAsync=True}" >
<controls:ItemImage.ToolTip>
<StackPanel>
<controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" />
<Label Content="{Binding ItemNo}" />
</StackPanel>
</controls:ItemImage.ToolTip>
</controls:ItemImage>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
最佳答案
默认情况下,您的工具提示 dataContext 已设置为 ItemNo;这就是为什么将其重置为:
<controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" />
...不起作用。
只需删除 DataContext="{Binding ItemNo, IsAsync=True}"
使用snoop它将帮助您解决 viewwing 绑定(bind)错误或已设置的 dataContext。
关于wpf - 如何获取网格行的数据上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15243132/