【发布时间】:2016-04-09 10:44:09
【问题描述】:
我有一个简单的组合框,它有一个使用 .DefaultView 作为项目源的数据表。我在组合框上放置了一个过滤器,代码如下:
private void FilterCombobox(ComboBox cmb, string columnName)
{
DataView view = (DataView)cmb.ItemsSource;
view.RowFilter = (columnName + " like '*" + cmb.Text + "*'");
cmb.ItemsSource = view;
cmb.IsDropDownOpen = true;
}
组合框的 XAML 是:
<ComboBox x:Name="cmbRigNum" KeyboardNavigation.TabIndex="3" HorizontalAlignment="Left" Margin="470,440,0,0" VerticalAlignment="Top" Width="206" SelectionChanged="cmbRigNum_SelectionChanged" IsEditable="True" StaysOpenOnEdit="True" IsTextSearchEnabled="False" FontFamily="Arial" FontSize="14" KeyUp="cmbRigNum_KeyUp"/>
更新:Key_Up 事件:
private void cmbRigNum_KeyUp(object sender, KeyEventArgs e)
{
FilterCombobox(cmbRigNum, "RigNumber");
}
当用户键入时,一切都很好,但是一旦使用箭头键进行选择,过滤的列表就会消失,组合框中的值也会被清除。如何使用户能够使用箭头键在用户最初键入时显示的过滤列表中导航?
【问题讨论】: