0

我有一个带有上下文菜单的 ListBox

<ListBox>

<toolkit:ContextMenuService.ContextMenu>

<toolkit:ContextMenu IsZoomEnabled="True"x:Name="ContextMenu" >

<toolkit:MenuItem x:Name=”Open" Header=”Open Trailer" Click="nOpe_Click"/>



</toolkit:ContextMenu>

</toolkit:ContextMenuService.ContextMenu>


</ListBox>

如何获取调用 Open_Click 事件的 ListBox 项的索引。

4

1 回答 1

1

您的 Open_Click 事件Object sender的签名中应该有一个。这是你必须处理的。

sender并将其投射到MenuItem. 这MenuItem将有一个DataContext

这应该是您DataContext的.MenuItemListBox

如果你对此有参考ListBox,那么你可以去

var contextMenuOpenedIndex = ListBoxName.IndexOf((sender as MenuItem).DataContext)

这是相同的问题(和参考): ContextMenu 事件处理程序中的 ListBox.SelectedIndex

一个示例项目模板:

<ListBox x:Name="SampleListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding}">
                ... ContextMenu ... 
            </Grid>
        </DataTemplate>    
    </ListBox.ItemTemplate>
</ListBox>
于 2013-10-06T06:05:14.520 回答