を得るために、私はアイテムとしてCheckBox
ESを持つComboBox
を持っている:設定したフォーカスキーボード制御
<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
のIsChecked
状態を切り替えることができます。
手動でフォーカスをCheckBox
に切り替えることなく、同じことを行うことができるソリューションを探しています。私の希望の動作は次のようになります。
- 私は
EventTrigger
とInputBinding
とし、Focusable
財産の周りいじることによってそれを実行しようとしましたスペース
で状態を選択し、矢印キー
私は
xaml
で解決策を望んでいますが、コードビハインドソリューションは依然として高く評価されます。
これは動作しますが、なぜそれほど確実ではないのですか。ちょうどそれを見ると、 'CeckBox'が' ComboBox'がフォーカスされているときは常にフォーカスを取得しようとするように見えます。しかし、選択されたものだけが実際に焦点を当てます。これは他の 'CheckBox'がすべて' Collapsed'なので、フォーカスを描くことができないからですか? –