Определить, какой элемент управления сфокусирован? - PullRequest
3 голосов
/ 28 ноября 2011

Я хочу установить два ярлыка для двух кнопок с одним именем.
Как я могу определить, какой элемент управления сфокусирован в MVVM?

1 Ответ

0 голосов
/ 28 ноября 2011

Вы можете просто добавить горячую клавишу в любой логический контекст, в котором она существует. Существует множество способов обработки горячих клавиш в WPF, однако ваша базовая разметка должна выглядеть примерно так:

<Window>
    <StackPanel>
        <local:MyUserControlA>
            <local:MyUserControlA.InputBindings>
                <KeyBinding Key="Enter" Command="{Binding SaveACommand}" />
            </local:MyUserControlA.InputBindings>
        </local:MyUserControlA>

        <local:MyUserControlB>
            <local:MyUserControlB.InputBindings>
                <KeyBinding Key="Enter" Command="{Binding SaveBCommand}" />
            </local:MyUserControlB.InputBindings>
        </local:MyUserControlB>

    </StackPanel>
</Window>

Этобудет работать SaveACommand, если UserControlA имеет фокус клавиатуры, или SaveBCommand, если UserControlB имеет фокус клавиатуры.

...