WPF:在 ListView 上下文菜单右键单击而不是项目索引后获取我的对象

WPF: get my object after ListView context menu right click instead of item index

我有 ListView 包含我的对象:

public ObservableCollection<MyObject> objects { get; set; }

这是我的 Context menu 右键单击​​事件:

private void MenuItem_Click(object sender, RoutedEventArgs e)
{
    if (myListView.SelectedIndex == -1)
        return;
    int index = myListView.SelectedIndex;
}

因此,与其拿这个 index 并根据 index 号码在我的 collection 中找到我的 object,我可以立即拿 object 吗?

如果我没理解错的话,你只想获取已选择的对象

您是否尝试过使用列表视图的 .SelectedItem 属性?

private void MenuItem_Click(object sender, RoutedEventArgs e)
{
    if (myListView.SelectedIndex == -1)
        return;
    var obj = myListView.SelectedItem as MyObject;
}

虽然我不确定为什么你不能只通过对象在集合中的索引来查找它。这两种方法都是有效的,尽管上述方法有更明确的意图。