ICommand をコントロールのイベントにフックするさまざまな実装を検討しています。たとえば、TextBox の GotFocus は、View Model で GotFocusCommand を呼び出す必要があります。次に、(自分の学習のために) 自分のバージョンを実装するというアイデアを思いつきましたが、うまく機能していますが、XAML で 1 つのイベントを 1 つのコマンドにしかリンクできません。
(基本的には、リフレクションを使用して指定されたイベントを見つけてから、コマンドを実行する AddEventHandler を実行します)
これはうまくいきます:
<Button
local:EventToCommand.Event="Click"
local:EventToCommand.Command="{Binding TestCommand}"
/>
しかし、これはしません:
<Button
local:EventToCommand.Event="Click"
local:EventToCommand.Command="{Binding ClickCommand}"
local:EventToCommand.Event="GotFocus"
local:EventToCommand.Command="{Binding GotFocusCommand}"
/>
属性名の重複エラーが発生します。
次のようなことは可能でしょうか:
<Button>
<Some Xaml Element>
<local:EventToCommand Event="Click" Command="{Binding ClickCommand}" />
<local:EventToCommand Event="GotFocus" Command="{Binding GotFocusCommand}" />
</Some Xaml Element>
</Button>
複数のイベントをコマンドに「マップ」するには?