C# WPF ListView会丢失每个项目的焦点
我在使用WPF ListView时遇到了一些问题,无法找到任何答案。我在WPF应用程序中有一个简单的ListView,其中包含一些项目。我还在GotFocus事件上附加了一个GotFocus事件处理程序。似乎对于我在ListView上所做的每个选择,都会触发GotFocus事件 xaml代码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
<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中读到,我不应该依赖于检测控件何时获得焦点。是否有任何切实可行的方法来检测焦点变化?