目前我有一些GridViewColumns
,例如:
<GridViewColumn Width="20">
<GridViewColumnHeader Content="X" />
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Width="18"
Height="18"
Source="{Binding VisibleIcon}"
Opacity="{Binding VisibleOpacity}"/>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
我想在点击此列的项目上执行某些操作。但我不知道如何添加Click
事件,因为GridViewColumn
和Image
都没有Click
事件。
我希望有这样的事情:
void ClickEvent ...
{
SelectLayer (boundDataItem);
// boundDataItem is of type `Layer`.
}
编辑:我发现了一个MouseLeftButtonDown
事件,但是没有给我点击的绑定数据项,只能获取图像或文本,但它们不是唯一的图像可供查找。
EDIT2:即使使用MouseLeftButtonDown
,它也是有用的,只有点击TextBlock
本身,而不是在同一GridViewColumn
内的其他地方。
答案 0 :(得分:1)
您可以在根元素(StackPanel.MouseLeftButtonDown
)上添加处理程序,然后在处理程序中,您可以使用var layer = (sender as FrameworkElement).DataContext as Layer
到达绑定项目。