C# 如何在WPF中设置Listview以响应Enter和MouseClick?

C# 如何在WPF中设置Listview以响应Enter和MouseClick?,c#,wpf,xaml,listview,C#,Wpf,Xaml,Listview,我有一个WPF列表视图,我在XAML中使用“SelectionChanged”进行选择。我的支持代码是C。该应用程序运行良好。我还希望在突出显示特定行时按Enter键进行选择,以获得与鼠标单击该项相同的结果 我试着在我的XAML中设置一个KeyUp事件,并检查备份代码中的e.Key何时为“Return”,这也可以很好地工作。问题是,当我按下Enter键时,我无法查看listview中的哪一行:SelectedIndex为-1,SelectedItem为null,因此显然没有进行任何选择;所有这一

我有一个WPF列表视图,我在XAML中使用“SelectionChanged”进行选择。我的支持代码是C。该应用程序运行良好。我还希望在突出显示特定行时按Enter键进行选择,以获得与鼠标单击该项相同的结果

我试着在我的XAML中设置一个KeyUp事件,并检查备份代码中的e.Key何时为“Return”,这也可以很好地工作。问题是,当我按下Enter键时,我无法查看listview中的哪一行:SelectedIndex为-1,SelectedItem为null,因此显然没有进行任何选择;所有这一切表明,当我按下Enter键时,我在listview中


有人能告诉我怎么做吗?我对WPF比较陌生,因此请在您的回复中具体说明。

选择的索引直接链接到
SelectionChanged
事件,仅在选择项目时更改

您应该使用类似于
listViewItemMouseOverEvent
的方法来获取enter KeyUp事件的索引

YourListViewItemType item;
private void ListView1_ItemMouseHover(Object sender, ListViewItemMouseHoverEventArgs e) {
    item = e.Item;
}
private void Page_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if(item == null) return;
    if(e.KeyCode == Keys.Return)
    {
        // Do something with highlighted item
    }
}

类似的方法应该可以很好地工作

事实证明,使用listview上的上下箭头(当它处于焦点时)确实可以设置SelectedIndex。我不知道为什么我以前没有意识到这一点,但一旦我发现了这一点,从我的可观察集合中检索记录并将其解析出来就很简单了。最后,我在XAML中编写了一个Keyboard.KeyUp事件,并检查了事件处理程序中按下的键,例如,C或Enter表示更改,D或Delete表示删除,等等。

这是ListView中的一个按钮
它应该与文本块一起使用
您只需要获取DataContext

Button btn = (Button)sender;
GabeLib.SearchItem srchItem = (GabeLib.SearchItem)btn.DataContext;

您好,请提供您的代码,这将更容易=)