我使用this文章创建了多选ComboBox
。
按空格键时,我想在每个项目中选择/取消选择CheckBox
。
我尝试为PreviewKeyDown
添加CheckBox
,但事件不会被提升。
我还尝试在PreviewKeyDown
中添加StackPanel
,但之后我无法获取当前已选中CheckBox
的所选项目。
答案 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>