WPF中Multi Select ComboBox中复选框的PreviewKeyDown

时间:2015-10-31 09:28:17

标签: c# wpf checkbox combobox

我使用this文章创建了多选ComboBox

按空格键时,我想在每个项目中选择/取消选择CheckBox

我尝试为PreviewKeyDown添加CheckBox,但事件不会被提升。

我还尝试在PreviewKeyDown中添加StackPanel,但之后我无法获取当前已选中CheckBox的所选项目。

2 个答案:

答案 0 :(得分:0)

您需要处理组合框的KeyUp并确保下拉列表已打开。

更新

<Grid>
    <ComboBox x:Name="cbo" KeyUp="ComboBox_KeyUp" Height="30" Width="200">
        <CheckBox Content="checkbox1"/>
        <CheckBox Content="checkbox2"/>
        <CheckBox Content="checkbox3"/>
        <CheckBox Content="checkbox4"/>
        <CheckBox Content="checkbox5"/>
    </ComboBox>
</Grid>
///////////////////////////
private void ComboBox_KeyUp(object sender, KeyEventArgs e)
    {
        if (cbo.IsDropDownOpen)
        {
          // select first and second
         (cbo.Items[0] as CheckBox).IsChecked = true;
         (cbo.Items[1] as CheckBox).IsChecked = true;

        }
    }

答案 1 :(得分:0)

我使用input <- "Variable Var1 var2 var3 var4 Upholstery KCDF Venetian Beige Leatherette N/C Upholstery KCDF Venetian Beige Leatherette N/C Accessories Z06 Black Kidney Grilles 173.00 Accessories Z06 Black Kidney Grilles 173"

EventSetter

并在后面的代码中。

<ComboBox.Resources>
  <Style TargetType="{x:Type ComboBoxItem}">
   <EventSetter Event="PreviewKeyDown" Handler="EventSetter_OnHandler" />
  </Style>
</ComboBox.Resources>