私は、MicrosoftのWPFToolkit AutoCompleteBoxを使用する次のコードを持っています。入力バインディングを追加しようとしました。wpfのコントロールでキーバインドをオーバーライドする方法は?
xmlns:tk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
<tk:AutoCompleteBox IsTextCompletionEnabled="True" FilterMode="Contains" ItemsSource="{Binding DistinctItemNames, Mode=OneWay}"
SelectedItem="{Binding SelectedItemName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
x:Name="searchBox" Width="300" Height="23" VerticalContentAlignment="Center" >
<tk:AutoCompleteBox.InputBindings>
<KeyBinding Key="Return" Command="{Binding ShowSelectedItemsCommand}"/>
<tk:AutoCompleteBox.InputBindings>
</tk:AutoCompleteBox>
ただし、動作しません。私はコントロール自体が 'Enter'または 'Return'キーを処理するので、どうすればそのデフォルト関数をオーバーライドできますか? 私はまた、 'UserControl.InputBindings'の下に直接そのキーバインドを入れて、それも動作しませんでした。コマンドロジックを処理するためにコードビハインドを使用するのは嫌です。
ありがとうございました。コード内のコードが最小限である限り、実際にコードの背後に問題はありません。私がここでやりたくないのは、コード内のShowSelectedItems()コードを処理することです。私はそれをビューモデルに残すことを好み、あなたの答えはそれを解決しました。それは完全に動作します。 –