【问题标题】:Combobox automatically dropdown组合框自动下拉
【发布时间】:2014-08-13 01:23:18
【问题描述】:

我有可编辑的组合框,MVVM。 当我在组合框中写东西时,我需要 dropdown=true。

 Text="{Binding textsearch, UpdateSourceTrigger=PropertyChanged}" 

textsearch 中,我为 ComboBox IsDropDownOpen=true 编写了 OnPropertyChange,但它仅在我选择行时才有效,然后尝试再次写入,dropdown=false 并且不对属性做出反应。 .

另外,当我选择行并更改文本时,我无法再次选择该行,因为它已被选中,我需要先更改所选项目,但是当我更改所选项目时,文本也会发生变化。

如何使过滤器起作用?

或者像另一个变体一样,我为过滤文本添加了文本框,但是当我编写文本并调用 textsearch 属性时,文本框失去了焦点,组合框有这个焦点......如何将焦点保存在文本框上和下拉组合框项目列表?

【问题讨论】:

    标签: c# wpf mvvm combobox


    【解决方案1】:

    执行此类操作的最简单方法是处理一个或多个事件。你可以尝试处理PreviewTextInput event:

    <ComboBox ItemsSource="{Binding Items}" IsEditable="True" 
        PreviewTextInput="ComboBox_PreviewTextInput" />
    

    ...

    private void ComboBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        ComboBox comboBox = sender as ComboBox;
        comboBox.IsDropDownOpen = true;
    }
    

    每次用户输入ComboBox TextBox 时,此事件处理程序中的代码都会打开下拉菜单。您可能需要处理更多事件才能获得您想要的确切行为,但您可以从 MSDN 上的 ComboBox Events 页面查看哪些事件可用并自己完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 2010-11-30
      • 2010-10-27
      相关资源
      最近更新 更多