我有一个Datagrid,其中的行绑定到viewmodels。
在我的第一列中,我有一个图像控件,它绑定到行中的itemno。这很好。
现在,我想在此图片上显示一个工具提示,其中显示了更大版本的图片。我认为这很容易,但我已经意识到,工具提示可能没有得到行的datacontext。
那么,如何获取工具提示,绑定到绑定行的相同数据? 在我的下面的代码中,工具提示上的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>
答案 0 :(得分:3)
默认情况下,您的工具提示dataContext已设置为ItemNo;这就是重置为:
的原因 <controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" />
......不起作用。
只需删除DataContext="{Binding ItemNo, IsAsync=True}"
使用snoop它可以帮助您查看绑定错误或已设置的dataContext。