日期:2014-05-18  浏览次数:21403 次

WPF如何让ListView的Item获得焦点!!!!!!!
注意是Item获得焦点,不是被选择。

我的程序是C#的,具体希望实现的功能为:

操作员选择一项后,焦点跳到其他控件爱你上,但发现选错,按Esc跳回Listview中,希望这时焦点是在刚才所选那项上,但

因为Item没有focus()方法,只能用ListView.focus(),此时焦点是在整个ListView上。

但用键盘上下键移动时,它只能在第一项Item上重新移动,这样会导致操作不灵活。希望可以焦点回到之前所选的Item上。


搜索到关于焦点的资料,说Item没有逻辑焦点的,所以不能focus();但有键盘焦点,上下键操作的时候可以明显看到Item是

被选择的。请问要如何实现让Item获得焦点呢????


麻烦大家帮帮忙??这个我研究很久了,都弄不出来!!先谢谢各位了!!

------解决方案--------------------
那只是选择,不是焦点获得,如果你要用键盘选择listview的其他项,还是会从第一项开始选择的。

这是WPF里面ListBox的一个bug,就是设置了selectedItem或者selectedIndex之后键盘操作还是从第一个开始。ListView是继承自ListBox,所以这个Bug依旧。

我当初的解决方法就是屏蔽ListBox的按键处理,自己处理上下键切换选中项。