我有一个包含汽车模型的WPF复选框列表。当我进入列表时,会发生以下情况:
1)在第一个标签键上按下,选择列表项
2)按第二个标签键,选中实际复选框,允许我使用空格键键设置IsChecked状态。
当选择列表项时,是否可以自动将光标移动到复选框? (试图避免两次击中标签)
XAML:
<ListBox ItemsSource="{Binding Cars}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Make}" IsChecked="{Binding IsChecked,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:1)
尝试将此添加到您的ListBox
:
<ListBox.ItemContainerStyle>
<Style TargetType="Control">
<Setter Property="Focusable" Value="False" />
</Style>
</ListBox.ItemContainerStyle>
答案 1 :(得分:1)
尝试了丹的解决方案,它可以工作但是在选择第一个复选框后它将焦点移出ListBox控件,我正在寻找阻止焦点设置到所选列表框项目的东西,同时仍然允许选项卡通过所有列表中的复选框。
以下链接帮助了我 - Keyboard focus to list box items in WPF
我做了一些更改以创建边框和verticall滚动条,完成下面的XAML:
<Border BorderThickness="0.8" BorderBrush="Gray">
<ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto" Margin="1">
<ItemsControl ItemsSource="{Binding Cars}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Make}" IsChecked="{Binding IsChecked,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Border>