【发布时间】:2017-06-26 16:33:29
【问题描述】:
我有一个ComboBox,如下:
ComboBox IsEditable="True"
Width="200"
Height="25"
IsTextSearchEnabled="False"
x:Name="cb"
PreviewTextInput="Cb_OnPreviewTextInput"
ItemsSource="{Binding ItemList}"
Text="{Binding SearchTextText}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
当Cb_OnPreviewTextInput 被调用时,我设置IsDropdownOpen = true。
在第一次尝试中(在输入第一个字母后)列表中的第一个项目被选中,我可以使用相关箭头上下移动,插入符号仍在 TextBox 中。
当我继续打字时,我不能再上下导航(一次 1 项),此时整个 ScrollViewer 获得焦点,我只能转到底部或顶部,但不是 1 比 1。我必须关闭弹出窗口,例如按 Escape,然后键入 1 个字符重新打开,以便能够再次向上/向下。
我还注意到,在按下 PageUp 后,第一个项目也被选中,所以我尝试在代码中模仿它,但没有运气。
任何人都知道如何在此处进行向上/向下导航和输入而不会出现问题?
【问题讨论】:
-
请修正您的代码(关闭所有标签)和说明内的拼写。另外,请粘贴在 Cb_OnPreviewTextInput 正文中。我假设是 ItemList 的字符串集合吗?