1

我有一个包含汽车模型的 WPF 复选框列表。当我进入列表时,会发生以下情况:

1)在第一次按tab键时,列表项被选中

2) 在第二个 tab键按下时,实际的复选框被选中,允许我使用空格键设置 IsChecked 状态。

选择列表项时是否可以自动将光标移动到复选框?(尽量避免两次点击标签)

XAML:

<ListBox ItemsSource="{Binding Cars}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <CheckBox Content="{Binding Make}" IsChecked="{Binding IsChecked,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
4

2 回答 2

1

尝试将此添加到您的ListBox

        <ListBox.ItemContainerStyle>
          <Style TargetType="Control">
            <Setter Property="Focusable" Value="False" />
          </Style>
        </ListBox.ItemContainerStyle>
于 2012-10-16T07:45:08.237 回答
1

尝试了 Dan 的解决方案,它可以工作,但是在选择第一个复选框后它会将焦点移出 ListBox 控件,我正在寻找可以防止将焦点设置到所选列表框项目同时仍然允许通过选项卡浏览所有复选框的东西列表。

以下链接帮助了我 -键盘焦点到 WPF 中的列表框项目

我进行了一些更改以创建边框以及垂直滚动条,下面是完整的 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>
于 2012-10-16T08:33:45.457 回答