我有一個ComboBox
具有CheckBox
ES的項目:將焦點設置到複選框在組合框,以獲得鍵盤控制
<ComboBox ItemsSource="{Binding SomeCollectionProperty}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding SomeBoolProperty}" Width="20" />
<TextBlock Text="{Binding Name}" Width="140" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
如果ComboBox
獲得鍵盤焦點,我可以選擇一個項目向上和向下方向鍵。然後,我可以將焦點切換到CheckBox
與標籤,並且能夠通過按空間來切換CheckBox
的IsChecked
狀態。
我正在尋找一個解決方案,可以讓我做同樣的事情,但不需要手動將焦點切換到CheckBox
。我期望的行爲是:
- 箭頭鍵選擇項目
- 選擇狀態空間
我試着用EventTrigger
和InputBinding
,並通過與Focusable
財產周圍擺弄做,但沒有運氣。
我寧願在xaml
的解決方案,但仍然不理解代碼隱藏解決方案。
它可以工作,但我不太清楚爲什麼。從看它的角度來看,每當'ComboBox'聚焦時,每個'CeckBox'都會試圖獲得焦點。但是隻有選定的人才能真正獲得焦點。這是因爲所有其他的CheckBox都是'Collapsed',因此無法繪製焦點? –