我有ListView
和GridViewColumn
:
<GridViewColumn Header="Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal"
MouseEnter="StackPanel_MouseEnter">
<CheckBox Checked="CheckBox_Checked"
Unchecked="CheckBox_Unchecked">
<CheckBox.IsChecked>
<Binding Path="IsSelected" RelativeSource="{RelativeSource AncestorType={x:Type ListViewItem}}"/>
</CheckBox.IsChecked>
</CheckBox>
<TextBlock x:Name="textBlock"
Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
因此,您可以看到我添加了StackPanel
MouseEnter
事件:
private void StackPanel_MouseEnter(object sender, MouseEventArgs e)
{
}
所以我的问题在于这个StackPanel_MouseEnter
函数:如何获取此GridViewColumn
内的当前对象? (甚至是我ListView
的当前索引)
答案 0 :(得分:1)
您可以通过访问堆栈面板的Name
获取此行绑定的当前项(例如,TextBlock
绑定DataContext
的项目):< / p>
private void StackPanel_MouseEnter(object sender, MouseEventArgs e) {
var item = ((FrameworkElement)sender).DataContext as YourItem;
if (item != null) {
// do stuff
}
}