C# WPF ListView会丢失每个项目的焦点

C# WPF ListView会丢失每个项目的焦点,c#,wpf,listview,focus,C#,Wpf,Listview,Focus,我在使用WPF ListView时遇到了一些问题,无法找到任何答案。我在WPF应用程序中有一个简单的ListView,其中包含一些项目。我还在GotFocus事件上附加了一个GotFocus事件处理程序。似乎对于我在ListView上所做的每个选择,都会触发GotFocus事件 xaml代码 <Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml

我在使用WPF ListView时遇到了一些问题,无法找到任何答案。我在WPF应用程序中有一个简单的ListView,其中包含一些项目。我还在GotFocus事件上附加了一个GotFocus事件处理程序。似乎对于我在ListView上所做的每个选择,都会触发GotFocus事件

xaml代码

<Window x:Class="WpfApplication4.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <ListView x:Name="MS" GotFocus="MS_GotFocus"></ListView>

</Grid>

cs代码

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfApplication4
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            List<string> test = new List<string>();
            test.Add("Item 1");
            test.Add("Item 2");

            MS.ItemsSource = test;
        }

        private void MS_GotFocus(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("Focus");
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Windows;
命名空间WpfApplication4
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
列表测试=新列表();
测试。添加(“第1项”);
测试。添加(“第2项”);
MS.ItemsSource=测试;
}
私有void MS_GotFocus(对象发送方,RoutedEventArgs e)
{
控制台写入线(“焦点”);
}
}
}
有人也经历过这个问题吗

谢谢
马丁

你为什么会认为这是个问题?你们到底想做什么?你们应该读一下GotFocus事件first@msedi当您选择
ListViewItem
时,它将获得焦点,因此
ListView
将失去焦点。有
IsKeyboardFocusWithin
属性告诉您此控件中是否有键盘焦点每次选择时都会触发get focus,因为每次选择条目时,控件都会首先获取焦点,这会导致触发事件。OK@dkozl。我就是这么想的。我还在MSDN中读到,我不应该依赖于检测控件何时获得焦点。是否有任何切实可行的方法来检测焦点变化?