当前位置:  开发笔记 > 编程语言 > 正文

在列表框中选择文本框项目不会更改列表框的选定项目

如何解决《在列表框中选择文本框项目不会更改列表框的选定项目》经验,为你挑选了3个好方法。

我有一个wpf列表框,显示一个文本框列表.当我单击文本框时,列表框选择不会更改.我必须单击TextBox旁边的以选择列表框项.是否需要为Textbox设置一些属性以将click事件转发到Listbox?



1> Arcturus..:

我们使用以下样式来设置PreviewGotKeyboardFocus,它处理TextBox控件和ComboBoxes的所有事件,如下所示:

    
        
    

然后我们在后面的代码中选择行:

    protected void SelectCurrentItem(object sender, KeyboardFocusChangedEventArgs e)
    {
        ListViewItem item = (ListViewItem) sender;
        item.IsSelected = true;
    }


这绝对是最好的方法.我有一个深层嵌套的层次结构,ListBoxes包含在其他ListBoxes中,以及其中包含的各种控件.这个方法很有效,因为它只使用ListBoxItem而不是包含的控件.一个建议的改变 - 直接选择项目更简单:item.IsSelected = true
Grazer在下面有一个更好的答案
Grazer的答案很好,但并不适合所有应用程序。我要选择一个项目,然后单击删除按钮以删除选定的项目。单击删除按钮时,他的方法将失去对项目的关注。这一个完美的作品。

2> 小智..:

请务必使用适当的TargetType:ListViewItem,ListBoxItem或TreeViewItem.



还有一个问题是,当ListView失去焦点时,它会导致选择被删除。下面的响应来自Arcturus更好

3> dotnetzen..:

我没有足够的代表发表评论,所以我发表评论作为答案.Grazer的上述解决方案不适用于您需要另一个控件Button的情况SelectedItem.这是因为按照Style Trigger,IsKeyboardFocusWithin当你点击它时变为假Button,并且SelectedItem变为空.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有