2
我有一個列表框,其項目模板有一個複選框。 現在,當我單擊列表框中的複選框時,它將設置複選框的選中狀態。如果我使用鍵盤「空格」鍵,我無法更改複選框狀態。鍵盤焦點列出WPF中的框項目
注意:通過單擊將焦點設置到複選框,鍵盤快捷鍵正在工作。
我有一個列表框,其項目模板有一個複選框。 現在,當我單擊列表框中的複選框時,它將設置複選框的選中狀態。如果我使用鍵盤「空格」鍵,我無法更改複選框狀態。鍵盤焦點列出WPF中的框項目
注意:通過單擊將焦點設置到複選框,鍵盤快捷鍵正在工作。
如果你不想列表框,提供選擇的一切,你可以使用一個普通的ItemsControl,而不是一個列表框:
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然後,你將只是一個複選框序列不與ListBoxItem的包裹他們控件將採取鍵盤焦點。另一方面,如果你想要ListBox顯示選擇,那麼你可能想要一個多選列表框,其中CheckBox的狀態被綁定到ListBoxItem的選定狀態。由於單擊ListBoxItem將檢查CheckBox,因此可以防止CheckBox被完全集中:
<ListBox ItemsSource="{Binding}" SelectionMode="Multiple">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox
Content="{Binding}"
Focusable="False"
IsChecked="{Binding IsSelected, RelativeSource=
{RelativeSource AncestorType={x:Type ListBoxItem}}}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>